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


  • Mod

    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
    Klaus

    Wofü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


  • Mod

    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)


Anmelden zum Antworten