prozedur ausführen wenn Hauptform vollständig geladen?

Für Fragen von Einsteigern und Programmieranfängern...
gemo1905
Beiträge: 8
Registriert: So 8. Jul 2012, 21:03

Re: prozedur ausführen wenn Hauptform vollständig geladen?

Beitrag von gemo1905 »

Onpaint legt aber schon los wenn die paintbox usw noch nicht vollständig geladen ist!

Was ist eigentlich der Unterschied zwischen:

-Button1.Click;
-Button1Click(Sender);

?

Hatte beide Varianten probiert aber nichts hat geholfen! :cry:

Benutzeravatar
theo
Beiträge: 10873
Registriert: Mo 11. Sep 2006, 19:01

Re: prozedur ausführen wenn Hauptform vollständig geladen?

Beitrag von theo »

gemo1905 hat geschrieben:Onpaint legt aber schon los wenn die paintbox usw noch nicht vollständig geladen ist!
Was soll das bedeuten? Resp. wo ist das Problem?

gocher
Beiträge: 298
Registriert: Di 23. Nov 2010, 23:41
OS, Lazarus, FPC: Ubuntu/Win, Lazarus trunk, FPC trunk
CPU-Target: 32Bit/64Bit
Wohnort: Geldern
Kontaktdaten:

Re: prozedur ausführen wenn Hauptform vollständig geladen?

Beitrag von gocher »

Also ich habe es mal kurz ausprobiert bei mir läuft alles!
Ich habe auf das TForm ein TTimer gelegt, das Property TTimer.Interval auf 3000 gesetzt und dem Ereignis TTimer.OnTimer Form1ButtonClick zugewiesen, das war es.
MfG Gocher
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me

Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

Re: prozedur ausführen wenn Hauptform vollständig geladen?

Beitrag von Scotty »

gocher hat geschrieben:TForm ein TTimer gelegt, das Property TTimer.Interval auf 3000 gesetzt und dem Ereignis TTimer.OnTimer Form1ButtonClick
Das ist die schlechteste Variante. Was ist denn, wenn der Start länger als 3 Sekunden dauert, z.B. wenn irgendwas parallel knuspert? Und wie fühlt es sich für den Anwender an, wenn der Start sehr schnell geht und das Programm nach ein paar Sekunden irgendwas ohne seinen Einfluss macht?

gemo1905
Beiträge: 8
Registriert: So 8. Jul 2012, 21:03

Re: prozedur ausführen wenn Hauptform vollständig geladen?

Beitrag von gemo1905 »

Das Problem ist das meine tpaintbox da teilweise noch keine Höhe bzw. Breite zugewiesen bekonnen hat.Was sicherlich noch von Bedeutung ist, das ich die hauptform beim öffnen maximiere. Die Paintboxgröße ist abhängig von der Formgröße. Mit einem kleineren Versuch hat es bei mir auch geklappt(showmessage war im onshow geöffnet und Form war im Hintergrund schon da!)
Ich denke da ich viel im oncreate der Form mache das dadurch wirklich die Form bei onshow noch nicht ganz fertig ist!?

Benutzeravatar
theo
Beiträge: 10873
Registriert: Mo 11. Sep 2006, 19:01

Re: prozedur ausführen wenn Hauptform vollständig geladen?

Beitrag von theo »

Glaube ich nicht, aber showmessage ist hierbei kein guter Berater.
Wenn du wissen willst, was abgeht, dann mach lieber writeln und starte das ganze von/via/mit Konsole.

Wie dem auch sei: OnPaint ist DER Moment zum zeichnen. Wenn etwas noch nicht bereit ist, dann mach halt ein Flag, welches das Zeichnen verhindert, resp. forciere das Zeichnen mit Invalidate, wenn es "ready" ist.

gemo1905
Beiträge: 8
Registriert: So 8. Jul 2012, 21:03

Re: prozedur ausführen wenn Hauptform vollständig geladen?

Beitrag von gemo1905 »

Ich muss mich Endschuldigen!

An alle die ein ähnliches Problem haben:onpaint ist die Lösung, aber seid nicht so dumm wie ich und nehmt das Ereignis von dem Element und nicht von der Form!

Tut mir Leid. Vielleicht konnte ich wenigstens jemand anderen helfen!

Thread kann geschlossen werden.

Danke
MfG George

Antworten