Autor Beitrag
urbanchaos
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 82

Win xp
Delphi 2005 Pers./7 enterprise
BeitragVerfasst: Di 29.01.08 16:51 
Hi
ich hab hier ne endlosschleife, die ich aber durch nen button klick beenden will. hab schon irgendwie rausgefunden, dass das mit Threads gehen soll, aber ich komm da net so richtig weiter.

ich hab jetzt das
ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.Button1Click(Sender: TObject);
begin
threadhandle := beginthread(nil,0,@Set(), nil,0,ThreadID);
end;

aber da kommt nen fehler!
kann mir da jemand helfen??
danke!
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 480

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Di 29.01.08 16:56 
Wenn du dich mit Threads beschäftigen willst, aber noch nicht so richtig Ahnung davon hast: Entweder sein lassen, oder ein Tutorial dazu lesen und verstehen. Das von Luckie ist imho sehr gut: www.michael-puff.de/...er/Delphi/Tutorials/

Ansonsten kannst du in die lange Schleife ein Application.ProcessMessages; einbauen, was aber nur ab und zu aufgerufen werden sollte (z.B. alle 100 mal, je nachdem, wie schnell ein Durchlauf zu Ende ist). Zusätzlich baust du eine globale Variable MachWeiter: Boolean; ein, die du bei Programmstart auf True setzt, und im AbbruchButton auf False. Zu Beginn eines Schleifendurchlaufs überprüfst du diese Variable und brichst ggf. ab.

_________________
We are, we were and will not be.
urbanchaos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 82

Win xp
Delphi 2005 Pers./7 enterprise
BeitragVerfasst: Di 29.01.08 17:08 
user profile iconGausi hat folgendes geschrieben:
Wenn du dich mit Threads beschäftigen willst, aber noch nicht so richtig Ahnung davon hast: Entweder sein lassen, oder ein Tutorial dazu lesen und verstehen. Das von Luckie ist imho sehr gut: www.michael-puff.de/...er/Delphi/Tutorials/

Ansonsten kannst du in die lange Schleife ein Application.ProcessMessages; einbauen, was aber nur ab und zu aufgerufen werden sollte (z.B. alle 100 mal, je nachdem, wie schnell ein Durchlauf zu Ende ist). Zusätzlich baust du eine globale Variable MachWeiter: Boolean; ein, die du bei Programmstart auf True setzt, und im AbbruchButton auf False. Zu Beginn eines Schleifendurchlaufs überprüfst du diese Variable und brichst ggf. ab.


jop den 2. teil hab ich auch schon, aber bei der endlosschleife hoert der ja eben nich mehr auf klicks^^

ich probiers mal mit dem application dings^^

jop hat gefunzt^^ thx =)
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 480

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Di 29.01.08 17:10 
Das Application-Dings ist dafür da, dass der wieder auf Klicks hört. Da wird halt die Nachrichten-Schleife der Anwendung abgearbeitet, und eine Nachricht ist dann dieser Button-Klick. ;-)

_________________
We are, we were and will not be.
urbanchaos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 82

Win xp
Delphi 2005 Pers./7 enterprise
BeitragVerfasst: Di 29.01.08 18:04 
user profile iconGausi hat folgendes geschrieben:
Das Application-Dings ist dafür da, dass der wieder auf Klicks hört. Da wird halt die Nachrichten-Schleife der Anwendung abgearbeitet, und eine Nachricht ist dann dieser Button-Klick. ;-)


jop^^ schon klar^^ bissl was versteh ich auch noch davon^^ wusste nur net, dass es sowas gibt^^
nochma thx =)