Entwickler-Ecke
WinForms - Sleep
bobi - Do 21.06.07 14:45
Titel: Sleep
Hi, ich möchte gerne das in meinen Programm immer eine gewisse Verzögerung zwischen den Zeitpunkten besteht wo etwas in das Label geschrieben wird, nur habe ich das Problem das er immer alle Sleeps abwartet und dann alles auf einmal ladet.
Gibt es da noch eine andere Möglichkeit?
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:
| procedure TWinForm_Start.TWinForm_Start_start; begin System.Threading.Thread.Sleep(9000); end;
procedure TWinForm_Start.TWinForm_Start_Load(sender: System.Object; e: System.EventArgs); begin If System.IO.File.Exists('cfg\login.jpscfg') then begin Label1.Text := ('Status: login.jpscfg wurde geladen'); TWinForm_Start_Start; end else System.IO.File.CreateText('cfg\login.jpscfg'); Begin If System.IO.File.Exists('cfg\db.jpscfg') then begin Label1.Text := ('Status: db.jpscfg wurde geladen'); TWinForm_Start_Start; end else System.IO.File.CreateText('cfg\db.jpscfg'); End;
If System.IO.File.Exists('cfg\display.jpscfg') then begin Label1.Text := ('Status: display.jpscfg wurde geladen'); end else System.IO.File.CreateText('cfg\display.jpscfg');
If System.IO.File.Exists('cfg\startscript.jpscfg') then begin Label1.Text := ('Status: startscript.jpscfg wurde geladen'); end else System.IO.File.CreateText('cfg\startscript.jpscfg');
Begin If System.IO.File.Exists('cfg\superadmin.jpscfg') then begin Label1.Text := ('Status: superadmin.jpscfg wurde geladen'); end else System.IO.File.CreateText('cfg\superadmin.jpscfg'); End; end; |
MFG: bobi
Moderiert von
Christian S.: Topic aus .NET verschoben am Do 21.06.2007 um 15:48
r2c2 - Do 21.06.07 16:51
Application.DoEvents() + F1 sollte helfen...
mfg
Christian
bobi - Do 21.06.07 21:08
Habe mir das gerade mal angeschaut, aber ich muss zugeben ich weiß nicht wie ich das anwenden kann.
(Ich frage mich gerade warum mein Beitrag im C# Forum steht, wenn ich es in Delphi Forum geschrieben habe ^^)
Mit freundlichen Grüßen: bobi
Christian S. - Do 21.06.07 21:18
bobi hat folgendes geschrieben: |
| (Ich frage mich gerade warum mein Beitrag im C# Forum steht, wenn ich es in Delphi Forum geschrieben habe ^^) |
Hier mal die Spartenbeschreibung der .NET Sparte des DF:
| Zitat: |
| Hier können sprachspezifische .NET-Probleme gestellt werden. .NET spezifische Themen müssen in unserem C#-Forum gestellt werden. |
Dein Problem ist nicht sprachspezifisch. :-)
bobi - Fr 22.06.07 09:08
Ok, dann habe ich mich wohl mit den post in der spalte vertan und dafür entschuldige ich mich auch.
Hätte dennoch einer ein Beispiel für mich wie ich das in Delphi lösen kann?
Christian S. - Fr 22.06.07 09:20
bobi hat folgendes geschrieben: |
| Hätte dennoch einer ein Beispiel für mich wie ich das in Delphi lösen kann? |
Mit
Application.DoEvents ;-) Wie hast Du denn bisher versucht, den Befehl anzuwenden? :-)
bobi - Fr 22.06.07 09:30
Ja, ich habe mir dann auch mal dazu die Hilfe von Borland angesehen, aber ich weiß nicht so richtig wie ich den einsetzen kann bzw muss.
r2c2 - Fr 22.06.07 15:23
bobi hat folgendes geschrieben: |
| Ja, ich habe mir dann auch mal dazu die Hilfe von Borland angesehen, aber ich weiß nicht so richtig wie ich den einsetzen kann bzw muss. |
Fangen wir mal damit an, was diese Methode macht. Was hast du von dem verstanden, was in der Hilfe steht. Oder besser: Was konkret hast du nicht verstanden?
mfg
Christian
bobi - Mo 25.06.07 08:34
Ich habe das so verstanden das diese Methode bewirkt, das Delphi die Prozesse nach einander abarbeitet. (denke ich ^^)
Was ich allerdings nicht verstehe ist, wie ich diesen Befehl bei mir mit in den Code einbringe!
MFG: bobi
r2c2 - Mo 25.06.07 14:20
bobi hat folgendes geschrieben: |
Ich habe das so verstanden das diese Methode bewirkt, das Delphi die Prozesse nach einander abarbeitet. (denke ich ^^)
|
Ähm.... nö. Die angefallenen
Messages werden abgearbeitet.
Mal gaaanz kurz was das heißt:
Jeder Thread(also auch dein Programm) hat ne MessageQueue(sowas wie n Briefkasten). Wenn du irgendwas machst(Maus bewegen, Klicken, Tasten drücken, etc.) merkt das Windows und sendet ne Message an den aktiven Prozess(dein Prog). Wenn dein Prog arbeitet, guckt es normalerweise nicht in den Briefkasten, ob es etwas machen soll(z.B: das Fenster neu zeichnen, damit der User die Änderungen sieht). Mit DoEvents(bzw. unter Win32 ProcessMessages) wird nochmal extra in den Briefkasten geguckt, ob da vllt was drin is und, wenn ja wird zuerst das gemacht, was in den Briefen steht(neu zeichnen!)...
mfg
Christian
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!