AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Timer wird vor FormCreate ausgeführt?
Thema durchsuchen
Ansicht
Themen-Optionen

Timer wird vor FormCreate ausgeführt?

Ein Thema von Go2EITS · begonnen am 22. Aug 2006 · letzter Beitrag vom 22. Aug 2006
Antwort Antwort
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#1

Timer wird vor FormCreate ausgeführt?

  Alt 22. Aug 2006, 13:35
Bei meinem Projekt "Watch" habe ich einen Timer, der anscheinend vor der Form1.create ausgeführt wird.
Dumm, da ich in der Form1.memo etwas schreiben will, weil der Timer etwas entdeckt hat. Der Timer schreibt erst, wenn die Form zu sehen ist, in die Memo. Dies ist definitiv ein Timer-Durchlauf zu spät!

Was kann ich tun, dass ich den Timer erst nach der Form1.create starte, oder schon "unsichtbar" schreiben kann?

Ein Timer1.enabled:=False in den Eigenschaften sowie Timer1.enabled:=False und Timer1.enabled:=true am Anfang und Ende der Form1.create habe ich auch schon probiert. Funzt nicht!
Weiss wieder jemand Rat?
  Mit Zitat antworten Zitat
Sascha L

Registriert seit: 4. Jun 2004
Ort: Hamm
390 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Timer wird vor FormCreate ausgeführt?

  Alt 22. Aug 2006, 13:38
Also erstmal nutzt du bitte OnShow und nicht OnCreate! Beim create des Formulars ist doch noch gar nicht gewährleistet, dass der Timer bereits erstellt wurde und so kann es eine AV geben.
Sascha
  Mit Zitat antworten Zitat
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#3

Re: Timer wird vor FormCreate ausgeführt?

  Alt 22. Aug 2006, 13:47
@Sacha L
Ok, hab ich gemacht!

Nützt aber nix:
So sieht es aus: (Pseudocode)
Delphi-Quellcode:
// Timer1 in den Eigenschaften ist natürlich False!

Formschow:
// Timer ist noch aus!
Timer1.Enabled:=false;
...Code
// Timer ist erst am Ende TRUE!
Timer1.Enabled:=True;
END

//Im Timer1 wird die Form erweitert;
Applikation.prozessmessages;
Form_Alert //form1 wird verbreitert
Applikation.prozessmessages;

Der Timer wird vor der Form ausgeführt.
Oder kann ich abfragen, ob die Form1 zu sehen ist?????????
z. b. IsForm then Timer1.enabled=True; ????
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.186 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Timer wird vor FormCreate ausgeführt?

  Alt 22. Aug 2006, 13:56
Ist dein Ansatz überhaupt sinnvoll
Du willst regelmäßig was überprüfen und dir ist sehr wichtig das dies schon beim Programmstart geschieht. Dann ist eine TTimer sehr schlecht da dieser über das Windows-Messaging funktiert. Und bei einem Programmstart ist es ein Glücksspiel wann nun dein Gewünschter Timer genau eintrifft.

 Bei meinem Projekt "Watch" habe ich einen Timer, der anscheinend vor der Form1.create ausgeführt wird. Das kann nur der Fall sein wenn du in der IDE für den Timer das Property Enabled auf True stehen hast. Damit wird der Timer gestartet wenn das Formularstreaming aus der Exe erfolgt ist. Und dies ist vor dem OnCreate-Event.

Was kann ich tun, dass ich den Timer erst nach der Form1.create starte, oder schon "unsichtbar" schreiben kann? Wie wäre es mit einem Überschreiben der AfterConstruction-Methode? Aber wie schon gesagt ist ein TTimer evtl. fehl am Platz.


Verrate uns doch mal was eigentlich gecheckt wird. Evtl. reicht es ja wenn du im OnCreate-Event einfach mal den Timer-Eventhandler explizit aufrufst.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Michael Habbe
Michael Habbe

Registriert seit: 10. Aug 2005
264 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Timer wird vor FormCreate ausgeführt?

  Alt 22. Aug 2006, 14:11
Zitat von Sascha L:
Also erstmal nutzt du bitte OnShow und nicht OnCreate! Beim create des Formulars ist doch noch gar nicht gewährleistet, dass der Timer bereits erstellt wurde und so kann es eine AV geben.
Nein, im FormCreate (das ist die Procedure, die nach dem Create ausgeführt wird) sind der Timer und alle anderen Komponenten schon da und stehen zur Verfügung.

<edit>

Auch wenns sich schon geklärt hat.
An dieses OldCreateOrder habe ich ebend nicht gedacht. Damit kann es ganz anders ausgehen. Muss ich mal wieder testen

</edit>
  Mit Zitat antworten Zitat
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#6

Re: Timer wird vor FormCreate ausgeführt?

  Alt 22. Aug 2006, 14:16
@bernhard:
Jetzt habe ich mal wieder bei mir nach einem Fehler gesucht. Ich habe alle Timer1 auf False gesetzt und gesehen, das die Meldung wieder kommt. Da war ein Vierzeiler im OnCreate/OnShow, der dieselbe Meldung wie der Timer bringen muss. Das hat Verwirrung gestiftet. Das ist der Nachteil des Alleinprogrammierers.

Entschuldigung, da hätte ich allein darauf kommen müssen. Danke Bernhard für die lange Antwort.



Beste Grüße
Go2EITS
  Mit Zitat antworten Zitat
Antwort Antwort


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 13:23 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