Autor Beitrag
Psycho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21



BeitragVerfasst: Mi 20.08.03 20:29 
Hi

Ich möchte einen Programmablauf stoppen und durch ein Ereignis (z.B. Buttoncklick) wieder aufnehmen.

Beispiel
ausblenden Delphi-Quelltext
1:
2:
3:
4:
For z:=1 to 5 do
begin
 edit1.text:=inttostr(zaehler);
end;

Nach dem ersten Schleifendurchgang wird die 1 ausgegeben. Ich möchte, dass diese Schleife erst weiterläuft, wenn ich einen Button drücke.

geht das?

Moderiert von user profile iconTino: Delphi-Tags hinzugefügt.
Tryer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 226
Erhaltene Danke: 7



BeitragVerfasst: Mi 20.08.03 20:48 
Deine Frage/Herangehensweise erinnert etwas an lineare Programmabläufe wie man sie unter Pascal realisiert hat.
Hier sollte man dann wohl eher ereignisorientiert arbeiten:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
TForm1.Button1Click(Sender: TObject);
begin
  if Zaehler <= 5 then
  begin
    Inc(Zaehler);
    Edit1.Text := IntToStr(Zaehler);
  end;
end;


Falls das nur ein Beispiel ist und Teil von etwas komplexeren gibts die Möglichkeit das ganze in einen Thread auszulagern der über Suspend/Resume gesteuert wird.

Als dritte (weniger schöne) Möglichkeit würde mir noch das einfallen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
var
  Weitermachen: Boolean;
...
TForm1.Button1Click(Sender: TObject);
begin
  Weitermachen := True;
end;
...
begin
  for  i := 1 to 5 do 
  begin
    Inc(Zaehler);
    Edit1.Text := IntToStr(Zaehler);
    Weitermachen := False;
    repeat
      Application.ProcessMessages;
      Sleep(0);
    until Weitermachen = True;
  end;
end;


MfG,
Tryer
Psycho Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21



BeitragVerfasst: Mi 20.08.03 21:16 
Danke, das wars!

super Psycho