Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - endloschleife durch button beenden
urbanchaos - Di 29.01.08 16:51
Titel: endloschleife durch button beenden
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
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 - 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:
http://www.michael-puff.de/Developer/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.
urbanchaos - Di 29.01.08 17:08
Gausi 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: http://www.michael-puff.de/Developer/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 - 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. ;-)
urbanchaos - Di 29.01.08 18:04
Gausi 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 =)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!