Autor Beitrag
DelphiSchüler1989
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mo 01.11.10 17:27 
Hey Leute bin gerade dabei ein Programm mit IF-THEn Funktion,Random-Funktion und Timer-komponente zu erstellen.

Zum Programm:
Beim Klicken auf den Button Zufallszahl wird der Timer aktiviert.
Bei jedem Timerdurchlauf wird eine Zufallszahl zwschen 0 und 99 erzeugt.
Nach 50 Durchläufen wird der Timer deaktiviert.
Ist die Zahl dann größer als 75 soll eon weiteres label mit dem Text "Hurra, Sie haben gewonnen" sichtbar werden.

Quellcode:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
type
  TForm1 = class(TForm)
    ButtonZufallszahl: TButton;
    LabelZufallszahl: TLabel;
    ButtonEnde: TButton;
    LabelGewonnen: TLabel;
    TimerZufallszahl: TTimer;
    procedure ButtonEndeClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ButtonZufallszahlClick(Sender: TObject);
    procedure TimerZufallszahlTimer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

VAR Zufallszahl,Durchlauf:integer;

procedure TForm1.ButtonEndeClick(Sender: TObject);
begin
  close;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Randomize;
end;

procedure TForm1.ButtonZufallszahlClick(Sender: TObject);
begin
  LabelGewonnen.visible:=false;
  TimerZufallszahl.enabled:=true;
  Durchlauf:=1;
end;

procedure TForm1.TimerZufallszahlTimer(Sender: TObject);
begin
  Zufallszahl:=random(100);
  LabelZufallszahl.Caption:=IntToStr(Zufallszahl);

  Durchlauf:=Durchlauf+1;

  IF Durchlauf=50 THEN TimerZufallszahl.Enabled:=False;

  IF (Zufallszahl>75AND (TimerZufallszahl.Enabled:=False)
  THEN LabelGewonnen:=True;
end;

end.


Problemstellung:
Wenn ich das programm testen will, dann zeigt er mir die Fehlermeldung [Error] IfThen1.pas(62): Operator not applicable to this operand type an
und zeigt mir die markierte zeile an.

Moderiert von user profile iconGausi: Beiträge zusammengefasst.

Habe vergessen zu erwähnen, dass ich morgen eine Arbeit über diese Thema schreibe und wäre daher über eine schnelle Antwort sehr dankbar.
Euer Deplhi Schüler

Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mo 01.11.10 17:34 
Ein Label macht man sichtbar, wenn man die Eigenschaft Visible des Labels auf True stellt. Also
ausblenden Delphi-Quelltext
1:
THEN LabelGewonnen.Visible := True;					

_________________
We are, we were and will not be.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 01.11.10 17:35 
Außerdem ist := der Zuweisungsoperator. Du willst aber nichts zuweisen sondern erfahren ob Enabled gesetzt ist.
ausblenden Delphi-Quelltext
1:
if (Zufallszahl > 75and not TimerZufallszahl.Enabled then					
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mo 01.11.10 17:47 
@Sebastian:
Nicht verwirren und den Source umschreiben. :lol:

Folgendes ist gemeint:
ausblenden Delphi-Quelltext
1:
IF (Zufallszahl>75AND (TimerZufallszahl.Enabled:=False)					

Sollte so aussehen:
ausblenden Delphi-Quelltext
1:
IF (Zufallszahl>75AND (TimerZufallszahl.Enabled=False)					


Sebastians Source macht genau das selbe ist aber für Anfänger manchmal verwirrend.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 01.11.10 17:54 
Ich wollte gar nicht erst riskieren, dass am Ende dann auch "= True" benutzt wird. Mit den (uns) bekannten Problemen. ;-)