Delphi Zufallsanzeige Text
lima-city → Forum → Programmiersprachen → Delphi & Pascal
array
borland
code
eiter
gleiche folge
grad
kenntnis
objekt
problem
programm
programmstart
prozedur
sender
string
test
text
treten
tun
wicht
zufall
-
Hällochen
ich programmier grad ein kleines Programm bei dem wenn ich auf nen Button Klick, dann gibt ein editfeld immer nen anderen text aus.
Wenn man drauf klickt steht im editfeld 'hallo', wenn man nochmal draufklickt, dann 'tschüss' und so eiter halt immer was anderes.
habs schon mit random probiert hat aber net so geklappt wie ich des wollt bzw. gar net.
Ich hoff ihr könnt mir helfen und mich weiterbilden^^
mfg
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Dieses Problem hat mit Delphi wenig zu tun, sondern eher mit einem generellen Lösungsansatz:
Ich würde: ein Array anlegen, in dem du einfach deine gewüschten String-Variablen hinterlegst, und wenn du z.B. 15 verschiedene "Antwortmöglichkeiten" hast, dann kannst du aus dem Array per Zufall eine Ausgabe auswählen.
Edit: der Code würde dann so aussehen, wenn das Text-Feld Edit1 und die Schaltfläche Button1 heißt:
procedure TSDIAppForm.Button1Click(Sender: TObject); var msgs: array[0..14] of String; i: Integer; begin Randomize; msgs[0] := 'Hallo du Wicht'; msgs[1] := 'Meldung 2'; msgs[2] := 'Test String'; msgs[3] := 'another Test String'; msgs[4] := 'TestString4'; msgs[5] := 'TestString5'; msgs[6] := 'TestString6'; msgs[7] := 'TestString7'; msgs[8] := 'TestString8'; msgs[9] := 'TestString9'; msgs[10] := 'TestString10'; msgs[11] := 'TestString11'; msgs[12] := 'TestString12'; msgs[13] := 'TestString13'; msgs[14] := 'TestString14'; i := Random(14); Edit1.Text := msgs[i]; end;
Beitrag zuletzt geändert: 1.3.2010 20:51:19 von burgi -
ich glaube zu wissen, was dein Problem ist: der Zufall tritt immer glich auf, oder? das heißt, trotz zufallszahlengenerator sind alle zufallsschritte des Programms nach jedem Start gleich, oder?
und du nutzt den Borland Builder? -
Hallo,
wenn man random() in Delphi nutzt kommt immer eine gleiche Folge von Zahlen dabei heraus. Dann würden bei jedem Programmaufruf immer die gleichen Sätze hintereinander angezeigt werden. Damit dies nicht passiert, musst du beim Programmstart in die Prozedur FormCreate ein randomize() einfügen. Dadurch erhält man zufälligere Zufallszahlen.
Zum Speichern der Sätze ist ein Array (Array[1..x] of String) geeignet, oder auch eine TStringList möglich. Wobei letztere ein Objekt ist und nähere Kenntnisse erfordert.
Deine Buttonklick Prozedur könnte mit einem Array dann so ausehen:
procedure Button1.Click(Sender : TObject);
begin
Edit1.Text:=Texte[random(x)+1];
end;
Dabei ist x die Arraylänge. -
ok habs grad mal getestet so wie burgi es gesagt hat klappts genau wie ich mir des vorgestellt hab thx man.
Beitrag zuletzt geändert: 2.3.2010 14:01:44 von tut-blog -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage