Konstantenausdruck erforderlich ?
-
moin,
wie geht sowas ohne das mein Compiler mir die Rote Karte zeigt ?
Er sagt: Konstantenausdruck erforderlichconst int s = Edit1->MaxLength+1; char szBuf[s];
Der Puffer muss UNBEDINGT eine feste Grösse haben, ich will da auch nix zur Laufzeit verändern
(als immer die grösse +1 (\0) die auch der maxlänge von Edit1 entspricht).Es geht mir darum wenn ich die MaxLänge von Edit1 vorm kompilieren verändere will ich nicht im Quellcode nach meiner Funktion suchen müssen um dort dann den Wert für den Puffer manuell eintragen zu müssen.
-
Hallo,
Die Arraygröße muss schon zur Compile-Zeit konstant sein. Das ist bei dir nicht der Fall.
Wozu brauchst du diesen Puffer überhaupt?
Du könntest statt deinem festen Puffer ja auch was anderes nehmen wie z. Bsp. std::vector<char>. Da hast du das Problem nicht.
-
naja ich dachte damit wäre das ding Constant aber es ist ja auch klar das "Edit1->MaxLength" nicht konstant ist,
und genau daran wirds wohl liegen.const int s = Edit1->MaxLength+1;
Ich brauch eigentlich so ein TEdit was nur Zahlen aktzeptiert für nen Timer.
Hab schon eigene Lösungen gebaut die ich verbessern wollte.Naja was solls.
-
SetWindowLong(Edit1->Handle, GWL_STYLE, GetWindowLong(Edit1->Handle, GWL_STYLE) | ES_NUMBER);
Dann aktzeptierts nur Zahlen.
mfg