kostenloser Webspace werbefrei: lima-city


Delphi Zufallsanzeige Text

lima-cityForumProgrammiersprachenDelphi & Pascal

  1. Autor dieses Themas

    tut-blog

    tut-blog hat kostenlosen Webspace.

    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:megarofl:.

    Ich hoff ihr könnt mir helfen und mich weiterbilden^^

    mfg
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. burgi

    Co-Admin Kostenloser Webspace von burgi

    burgi hat kostenlosen Webspace.

    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
  4. 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?
  5. 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.
  6. Autor dieses Themas

    tut-blog

    tut-blog hat kostenlosen Webspace.

    ok habs grad mal getestet so wie :king:burgi:king: es gesagt hat klappts genau wie ich mir des vorgestellt hab thx man.:biggrin:

    Beitrag zuletzt geändert: 2.3.2010 14:01:44 von tut-blog
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!