OnPaint feuert nicht

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: OnPaint feuert nicht

Beitrag von pluto »

Dabei habe ich das Erzeugen des NetworkThread nach OnPaint verschoben. Nach den letzten Erfahrungen und der erfreulichen Hilfe hier habe ich das Erzeugen des NetworkThread sowohl für Delphi 5, als auch für Linux nach OnShow verschoben.
Du weißt aber schon, wofür onPaint gedacht ist eigentlich oder? OnActivetet(oder so ähnlich) könnte auch noch helfen. Wenn onCreate nicht geht.
MFG
Michael Springwald

Heinrich Wolf
Beiträge: 323
Registriert: Di 12. Apr 2011, 13:21
OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
CPU-Target: 1core 1,8GHz 32Bit
Wohnort: Fürth
Kontaktdaten:

Re: OnPaint feuert nicht

Beitrag von Heinrich Wolf »

OnPaint ist eigentlich dafür da, was sein Name aussagt. Aber ich benutze es oft, wenn OnCreate nicht taugt, z.B. weil noch nicht alle Forms erzeugt sind, die ich brauche, und weil es so ziemlich das letzte Event bei Programmstart ist. Application.OnActivate feuert auch wie OnPaint mehrmals zur Laufzeit. Es ist bloß nicht im Object Inspektor des Forms, weil es zu Application gehört. Wenn Take it easy nur auf Lazarus laufen sollte, wäre Sockes Vorschlag AddHandlerFirstShow sehr gut, wobei ich mich frage, warum die Lazarus Entwickler kein OnFirstShow stattdessen gemacht haben. Das wäre konsequenter gewesen.

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: OnPaint feuert nicht

Beitrag von pluto »

OnActivate feuert auch wie OnPaint mehrmals zur Laufzeit.
Ja genau. Sind aber beide verschiedene Events. Deine Vorhaben, wäre in OnActivate besser aufgehoben. Aber so ein Event vermisse ich auch, daher greife ich selbst auf deine Lösung zurück.
Aber dann stelle ich meistens fest, dass das Problem woanders dran gelegen hat.
MFG
Michael Springwald

Heinrich Wolf
Beiträge: 323
Registriert: Di 12. Apr 2011, 13:21
OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
CPU-Target: 1core 1,8GHz 32Bit
Wohnort: Fürth
Kontaktdaten:

Re: OnPaint feuert nicht

Beitrag von Heinrich Wolf »

Interessanter Beitrag von August Klein in http://bugs.freepascal.org/view.php?id=19488 am 9.6.2011 05:04: Er kann den Bug mit einem minimalen Projekt reproduzieren, das er hochgeladen hat: http://bugs.freepascal.org/file_downloa ... 8&type=bug

Heinrich Wolf
Beiträge: 323
Registriert: Di 12. Apr 2011, 13:21
OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
CPU-Target: 1core 1,8GHz 32Bit
Wohnort: Fürth
Kontaktdaten:

Re: OnPaint feuert nicht

Beitrag von Heinrich Wolf »

shokwave hat mich auf folgenden Workaround gebracht:
Heinrich Wolf hat geschrieben:Mit

Code: Alles auswählen

Uses
{$ifdef Unix}
  LibC,
{$endif}
{$ifdef Win32}
  Windows,
{$endif}
an Stelle von

Code: Alles auswählen

Uses
{$ifdef Unix}
  LibC,
{$else}
  Windows,
{$endif}
... beschwert sich die Linux IDE nicht mehr über "Windows nicht gefunden" und ich kann im Objekt Inspektor von MainForm aus der Liste der Event Handler auswählen. ...
Es gab dazu einen Bug Report:
http://bugs.freepascal.org/view.php?id=19460
http://bugs.freepascal.org/view.php?id=19519
Mit fpc in svn Revision 17714 ist das behoben.

Heinrich Wolf
Beiträge: 323
Registriert: Di 12. Apr 2011, 13:21
OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
CPU-Target: 1core 1,8GHz 32Bit
Wohnort: Fürth
Kontaktdaten:

Re: OnPaint feuert nicht

Beitrag von Heinrich Wolf »

Heinrich Wolf hat geschrieben:Interessanter Beitrag von August Klein in http://bugs.freepascal.org/view.php?id=19488 am 9.6.2011 05:04: Er kann den Bug mit einem minimalen Projekt reproduzieren, das er hochgeladen hat: http://bugs.freepascal.org/file_downloa ... 8&type=bug
Das Problem hängt mit einem Panel zusammen, das Align = alClient hat.

Der Bug wurde am 19.6. mit Lazarus SVN Revision 31280 behoben.

Antworten