10 durch Variable ersetzen, aber wie?
-
Hallo,
Ich habe folgende Programmzeile in meinem Code.if (found==1 && random(10)==0) KarteOeffnen(x2,y2);Die 10 in der Random Funktion möhte ich gerne durch eine Variable ersetzen, die von außen über mein Hauptformular veränderbar sein soll (Es geht um die Spielstärke des Computers). Meine Überlegung war es eine int-Variable zu nehmen. Jetzt steh ich aber vor dem Problem mit welcher Eingabemöglichkeit ich diese eingeben lasse? Ein Editfeld hat den Nachteil das die Eingabe automatisch ein AnsiString ist. (Außerdem ist hier die Gefahr zu hoch das der User irgendwas fasches eingibt. Wie sieht es z.B. mit einer Listbox oder sowas aus? Hat einer von euch ne Ahnung was ich am besten zur Ausahl verschiedener am besten vorgegebener int-Werte nehme? Von 1-20.
MFG
Mr.Blond
-
Hallo
AnsiString Wert;
.....
.. random ( Wert.ToIntDef(10) );
...MfG
Klaus
-
Hallo
oder du nimmst eine ComboBox, in die du deine zulässigen Werte schreibst.
Die Umwandlung von AnsiString nach int mußt aber trotzwem vornehmen, wenn die Werte der Liste nicht exakt mit derren Index übereinstimmt.bis bald
akari
-
oder eine CSpinEdit aus der Komponentenpalette "Beispiele"
-
KlausB schrieb:
Hallo
AnsiString Wert;
.....
.. random ( Wert.ToIntDef(10) );
...MfG
KlausWofür muss denn die 10 eingetargen werden? Diesen festen Wert wollte ich ja durch die Variable austauschen. Sonst kann der Wert ja nicht durch ein ComboBox oder ähnliches ausgewählt werden, oder?
-
Hallo
Die 10 in ToIntDef ist nur der Stamdardwert, der bei einem String verwendet wird, der nicht in eine Zahl zu konvertieren ist. Schau dir mal die Hilfe dazu an (bzw. zu StrToIntDef)
bis bald
akari
-
Braunstein schrieb:
oder eine CSpinEdit aus der Komponentenpalette "Beispiele"
Sorry. Aber ich hab jetzt noch eine wahrscheinlich superdumme Frage. Aber wie befülle ich CSpinEdit mit den Werten von 1-20?
MFG
Mr.Blond
-
Hallo
garnicht. Einfach MinValue auf 1, MaxValue auf 20.
bis bald
akari
-
Hallo
dafuer gibt es die Hilfe des BCB
CSpin... markieren -> F1 -> lesen
MfG
Klaus
-
Du kannst das Edit Felöd über WinApi verändern, das nur zahlen eingetragen werden können.
SetWindowLong(Edit1->Handle , GWL_STYLE, GetWindowLong( Edit1->Handle , GWL_STYLE) | ES_NUMBER );Dann können wirklich nur zahlen eingegeben werden und die ToInt Conversion sollte immer klappen.
-
Danke für eure Unterstützung. Jetzt läuft alles wie gewollt.
MFG
Mr.Blond
(Mein Name ist Programm)