Einzelnen Beitrag anzeigen

Mike_

Registriert seit: 26. Mär 2008
98 Beiträge
 
Delphi 2007 Professional
 
#14

AW: TForm anzeigen obwohl Terminate bei TForm OnCreate

  Alt 16. Jan 2011, 16:11
Benutze einfach die Komponente TApplicationEvents und dort das Event OnIdle.

Dort prüfst du ob du schon nach einem Update gesucht hast und startest dann die Update-Prüfung.

Das Event wird zum ersten Mal dann ausgeführt, wenn die Anwendung eben nix zu tun hat, also mit dem ganzen Erstellungsgeraffel am Ende ist und alle Formulare erzeugt und angezeigt wurden.

Noch besser ist es allerdings die Updateprüfung in einen Thread auszulagern, falls es mal wieder länger dauert mit der Prüfung
Hier hatte ich das Problem, dass das Programm in einer Endlosschlaufe läuft, obwohl ich vorher eine Variable deklarierte und bei OnIdle sagte er solle nur weiter machen falls diese auf 0 steht.

Hat er wohl erkannt, jedoch blieb er in der Funktion einer Funktion stecken

Beispiel:
OnIdle -> CopyFileX Function -> WriteLogY Function
Nun blieb er mir, wenn ich z.B. eine MsgBox ind er WriteLogY Funktion reinpacke immer darin stecken und wiederholte sie von oben bis unten.

Es funktionierte tadellos ohne diese MsgBox, aber ist nicht der Sinn der Sache.

Ich habe zwar ncoh nicht genau verstanden, was du vorhast, aber du kannst einen Timer auf dein Form legen, diesen auf Enabled schalten und im OnTimer-Ereignis den Timer disablen und deinen Code ausführen.
Das war doch die - für mich - beste Lösung und vor allem ohne "Nebenwirkungen".

Durch meine Unerfahrenheit habe ich es im letzten Post noch nicht erkannt, vielen Dank Herr Raabe
  Mit Zitat antworten Zitat