AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Timer für procedure verzögerung?
Thema durchsuchen
Ansicht
Themen-Optionen

Timer für procedure verzögerung?

Ein Thema von HagBurt · begonnen am 29. Jul 2004 · letzter Beitrag vom 10. Dez 2010
Antwort Antwort
Seite 1 von 2  1 2      
HagBurt

Registriert seit: 18. Jun 2004
32 Beiträge
 
#1

Timer für procedure verzögerung?

  Alt 29. Jul 2004, 22:31
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
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Timer für procedure verzögerung?

  Alt 29. Jul 2004, 22:45
Moin HagBurt,

kannst Du mal erklären, was Du vorhast?
So unmittelbar würde ich sonst in die Zeilen des OnCreate einfach Hier im Forum suchenDelay einstreuen, kann aber im genannten Falle nicht wirklich einen Sinn darin sehen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
axelf98

Registriert seit: 27. Aug 2003
Ort: Ennepetal
440 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Timer für procedure verzögerung?

  Alt 29. Jul 2004, 22:59
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:
procedure TStartfenster.Timer1Timer(Sender: TObject);
begin
 AnderesFenster.visible := true;
 ...
 Timer1.enabled := false; // Hier wird er gleich wieder deaktiviert
end;
Oder gibt es noch eine andere Lösung für das Problem?
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Timer für procedure verzögerung?

  Alt 29. Jul 2004, 23:04
man könnte ja die dinge die für die anderen forms da sind ja in die entsprechenden anderen OnCreate der jeweiligen forms reinpacken
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Benutzerbild von XHelp
XHelp

Registriert seit: 12. Jul 2004
Ort: Duisburg
172 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: Timer für procedure verzögerung?

  Alt 30. Jul 2004, 00:56
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.
Alex
Von allen Dingen die mir verloren gegangen,
hab ich am meisten an meinem Verstand gehangen
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Timer für procedure verzögerung?

  Alt 30. Jul 2004, 07:37
Oder in der ProjectDatei das ganze so lösen
Delphi-Quellcode:
[...]
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Application.CreateForm(TForm3, Form3);
  Application.CreateForm(TForm4, Form4);
  Form1.DoTheThingsYouCouldNotDoInONCREATEofForm1;
[...]
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: Timer für procedure verzögerung?

  Alt 30. Jul 2004, 09:36
Zitat von HagBurt:
Villeicht stell ich ne dumme frage:
wenn ich eine onformcreate prozedur verzögert ausführen
möchte muss ich das mit einem timer machen???
Du willst die Prozedure nicht verzögert ausführen, sondern du willst die Prozedure dann
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.
Angehängte Dateien
Dateityp: zip autostartdemo_212.zip (2,3 KB, 27x aufgerufen)
Andreas
  Mit Zitat antworten Zitat
axelf98

Registriert seit: 27. Aug 2003
Ort: Ennepetal
440 Beiträge
 
Delphi 2005 Personal
 
#8

Re: Timer für procedure verzögerung?

  Alt 30. Jul 2004, 10:12
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!
  Mit Zitat antworten Zitat
runger
(Gast)

n/a Beiträge
 
#9

Re: Timer für procedure verzögerung?

  Alt 30. Jul 2004, 10:35
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
  Mit Zitat antworten Zitat
Trinity.dp

Registriert seit: 27. Nov 2009
8 Beiträge
 
#10

AW: Re: Timer für procedure verzögerung?

  Alt 10. Dez 2010, 10:59
Zitat von HagBurt:
Villeicht stell ich ne dumme frage:
wenn ich eine onformcreate prozedur verzögert ausführen
möchte muss ich das mit einem timer machen???
Du willst die Prozedure nicht verzögert ausführen, sondern du willst die Prozedure dann
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.
wollte nur sagen, dass mir das hier sehr weiter geholfen hat. Lohnt sich reinzuschauen!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz