Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Problem mit "case Phase of"


Analyzer - Do 15.04.04 17:34
Titel: Problem mit "case Phase of"
1. Ich vermisse echt ein Newbie Forum! IS mir voll peinlich hier immer zu posten ^^

2.


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:
procedure TForm1.Button1Click(Sender: TObject);
var Eingabe: string;
var Umrechnung, Zeit: integer;
begin
  case Phase of
  1begin
      Eingabe:= edit1.text;
      Umrechnung:= 60000;
      Zeit:= strtoint(Eingabe) * Umrechnung;
      timer1.Interval:= Zeit;
      timer1.Enabled:= true;
      Button1.caption:='Timer starten';
      Phase:= Phase + 1;
    end;

  2begin
      timer1.Enabled:=false;
      Button1.caption:='Timer abbrechen';
      Phase:= 1;
    end;
  end;
end;


procedure TForm1.Timer1Timer(Sender: TObject);
begin
  ShutdownWindows(swtShutdown);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Phase:=1;
end;



Das ist ein Teil meiner Unit!

Es geht darum , dass sich beim 2. Klick auf einen Button etwas verändert ... das passiert aber erst beim 3. Klick darauf .. ( danach läuft es .. 1,2,1,2,1,usw.. )

was muss ich ändern?

Moderiert von user profile iconPeter Lustig (17:37, 15.04.2004): Delphi-Tags hinzugefügt und Code eingrückt.


// oh wusste nicht das man das einstellen kann! sry..


Johannes Maier - Do 15.04.04 18:30

edit: Mir ist glaub ich dein Fehler aufgefallen:

Der Timer startet schon wenn du am Anfang draufdrückst, aber erst danach ändert sich die Caption auf "Timer starten". Wenn du dann ein zweites Mal draufdrückst, wird Enabled := False gesetzt und die Caption auf "Timer stoppen" (oder wie auch immer) geändert. D.h. es passiert immer das, was vorher nicht auf dem Button steht. Mit dem Sourcecode sollte alles in ordnung sein :wink:

MfG
Johannes


Analyzer - Do 15.04.04 19:01

jo ein kleiner denkfehler ^^