Zufälliger Text

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
mbs
Beiträge: 2
Registriert: Di 5. Jul 2011, 00:30

Zufälliger Text

Beitrag von mbs »

Ich habe drei Texte: text0, text1, text2. Ich möchte das wenn man auf einen Button klickt einer dieser drei Texte in einem Feld angezeigt wird. Hier ist mein Quellqode den ich geschrieben hab:

Code: Alles auswählen

unit Unit1; 
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  ExtCtrls;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Generieren: TButton;
    Ausgabe: TEdit;
    Image1: TImage;
    procedure AusgabeChange(Sender: TObject);
    procedure GenerierenClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Image1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end; 
 
var
  Form1: TForm1;
 
 
implementation
 
{$R *.lfm}
 
{ TForm1 }
 
procedure TForm1.Image1Click(Sender: TObject);
begin
 
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
   randomize;
end;
 
procedure TForm1.AusgabeChange(Sender: TObject);
begin
 
end;
 
procedure TForm1.GenerierenClick(Sender: TObject);
var
  x:integer;
 
begin
  x := Random(20+1);
  text0 := 'Text0';
  text1 := 'Text1';
  text2 := 'Text2';
  Ausgabe.caption:= text(x);
end;
 
end.
Hat jemand eine Idee wie ich das realisieren kann und sind meine Ansätze schon richtig oder liege ich voll daneben?

Teekeks
Beiträge: 359
Registriert: Mi 27. Mai 2009, 20:54
OS, Lazarus, FPC: OpenSuse11.4 x86 (Lazarus: 0.9.30 FPC 2.4.2)
CPU-Target: x86
Wohnort: Cottbus

Re: Zufälliger Text

Beitrag von Teekeks »

Code: Alles auswählen

procedure TForm1.GenerierenClick(Sender: TObject);
var
  x:integer;
 
begin
  x := Random(3);
  text0:='bla';
  text1:='blabla';
  text2:='foo';
  case x of
  0: Ausgabe.caption:=text0;
  1: Ausgabe.caption:=text1;
  2: Ausgabe.caption:=text2;
  end;
end;
Einer von vielen Wegen.

u-boot
Beiträge: 308
Registriert: Do 9. Apr 2009, 10:10
OS, Lazarus, FPC: Ubuntu 9.10 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 785..

Re: Zufälliger Text

Beitrag von u-boot »

hmm ohne Variablendeklaration wirds trotzdem nicht gehen.

Wäre man sich über diese im Klaren wäre das Ergebnis auch naheliegend.

Code: Alles auswählen

x := Random(20+1);
  // hier würd ich sagen liegt der Zahlenbereich dann doch sehr daneben, auch wenn man daraus noch was machen könnte...
 
 
  text0 := 'Text0';
  text1 := 'Text1';
  text2 := 'Text2';
  //naja hier weiss ich nicht so recht ob es ein Array hätte werden sollen oder nicht 
 
 
  Ausgabe.caption:= text(x); 
  //Hier sieht es danach aus als hätte jemand mit nem Array arbeiten wollen.
Ubuntu 9.10 (L 0.9.28 FPC 2.4.x)

Bora4d
Beiträge: 290
Registriert: Mo 24. Dez 2007, 13:14
OS, Lazarus, FPC: WinXP-Pro-Sp3, Xubuntu 12.04, (Laz 1.1-SVN Mai2012, FPC 2.6.1 / 2.6.0-Linux)
CPU-Target: AMD64X2

Re: Zufälliger Text

Beitrag von Bora4d »

Oder so:

Code: Alles auswählen

procedure TForm1.GenerierenClick(Sender: TObject);
var
  x:integer;
 textx: array[0..2] of string; //text array mit Länge 3 
 
begin
  //du Mußt auch bei FormOnCreate einmalig Randomize; aufrufen um Zufallsgenerator neu zustarten.
 
  x := Random(3);
  textx[0] := 'Text0';
  textx[1] := 'Text1';
  textx[2] := 'Text2';
  Ausgabe.caption:= textx[x];
end;

Antworten