![]() |
Timer für procedure verzögerung?
Hallo
Villeicht stell ich ne dumme frage: wenn ich eine onformcreate prozedur verzögert ausführen möchte muss ich das mit einem timer machen??? Danke für Antworten |
Re: Timer für procedure verzögerung?
Moin HagBurt,
kannst Du mal erklären, was Du vorhast? So unmittelbar würde ich sonst in die Zeilen des OnCreate einfach ![]() |
Re: Timer für procedure verzögerung?
So dumm ist die Frage gar nicht:
Ich hatte selbst so ein Problem. Wenn man mehrere Fenster hat und die beim Start zeigen will und evtl. noch mit Inhalt füllen will, geht das nicht direkt im Oncreate des Hauptfensters, weil zu dem Zeitpunkt die anderen Fenster noch nicht "da" sind. Baut man einen Timer ein, mit 200ms Verzögerung, läuft das Ganze:
Delphi-Quellcode:
Oder gibt es noch eine andere Lösung für das Problem?
procedure TStartfenster.Timer1Timer(Sender: TObject);
begin AnderesFenster.visible := true; ... Timer1.enabled := false; // Hier wird er gleich wieder deaktiviert end; |
Re: Timer für procedure verzögerung?
man könnte ja die dinge die für die anderen forms da sind ja in die entsprechenden anderen OnCreate der jeweiligen forms reinpacken
|
Re: Timer für procedure verzögerung?
Mit mehreren Forms:
Ich würde gucken, welche Form als letzte erstellt wird und dann einfach bei der form OnCreate erstellen, und auf andere forms zugreifen. |
Re: Timer für procedure verzögerung?
Oder in der ProjectDatei das ganze so lösen
Delphi-Quellcode:
wobei ich selbst das ganze in der Regel so löse das ich das im OnCreate von Form4 mache. Mit den 200 ms verzögerung ist keine gute Lösung, wenn der Rechner mal bischen ausgelastet ist dann kann es recht schnell vorkommen das 200 ms nicht reichen.
[...]
Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm2, Form2); Application.CreateForm(TForm3, Form3); Application.CreateForm(TForm4, Form4); Form1.DoTheThingsYouCouldNotDoInONCREATEofForm1; [...] |
Re: Timer für procedure verzögerung?
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
ausführen, sobald dein Formular komplett angezeigt wird. Würde man die Procedure in OnCreate oder OnShow aufrufen, wäre das Formular ja noch gar nicht zu sehen. Und nun der Trick: Das Formular sendet mit SendMessage eine Userdefined Message an sich selbst. Diese Message wird ganz hinten in die Windows Message-Queue eingereit und dann verarbeitet, wenn alle anderen Messages verarbeitet worden sind. Ein Timer löst entweder schon aus, wenn das Formular noch gar nicht sichtbar ist oder man muss den Timer sehr spät feuern lassen. |
Re: Timer für procedure verzögerung?
Bei meinem Problem hab ich einen Timer genommen, der etwas mehr Zeit hat. Es handelt sich um einen Splash-Screen, der eh ein bissl sichtbar sein soll!
|
Re: Timer für procedure verzögerung?
Hallo shmia,
bitte, bitte teste doch die Dinge die Du hier ins Forum stellst! Und bitte ein kleines Textfile mit ein paar gaaaaaaaanz kleinen Erklärungen was man mit dem Ding anfangen kann! Dann haben andere auch was davon. So lohnt sich das runterladen nicht! Rainer |
AW: Re: Timer für procedure verzögerung?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz