CustomControl: Was passiert zwischen Resize und Paint?

Rund um die LCL und andere Komponenten
Antworten
RSE
Beiträge: 462
Registriert: Mi 30. Jul 2008, 13:11
OS, Lazarus, FPC: WinXP SP3 (L 0.9.28.2 FPC 2.2.4)
CPU-Target: 32Bit
Kontaktdaten:

CustomControl: Was passiert zwischen Resize und Paint?

Beitrag von RSE »

Hallo!

Prinzipiell geht es noch um das Problem, dass ich hier schon einmal angesprochen habe. Da ich aber jetzt anders herangehe, ist ein neues Thema, denke ich, angebracht.

Ich habe eine eigene Listbox, die ich jetzt direkt von CustomControl abgeleitet habe. Ich habe die Prozeduren WMPaint und DoOnResize überschrieben. Wenn ich die Listbox resize, dann wird irgendwo zwischen DoOnResize und WMPaint mein Canvas gelöscht. Ich konnte bisher im Gewirr der LCL die Stelle aber nicht herausfinden, an der das passiert. Wer kann mir helfen? Ich möchte verhindern, dass das Canvas grundsätzlich beim Resize komplett gelöscht wird, weil das bei mir zu Flackern führt und ich das intelligenter lösen möchte.
Seit er seinen neuen Computer hat, löst er alle Probleme, die er vorher nicht hatte!

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

LM_ERASEBACKGROUND sollte die entsprechende naricht sein.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

RSE
Beiträge: 462
Registriert: Mi 30. Jul 2008, 13:11
OS, Lazarus, FPC: WinXP SP3 (L 0.9.28.2 FPC 2.2.4)
CPU-Target: 32Bit
Kontaktdaten:

Beitrag von RSE »

Ich werde das erst morgen weiter evaluieren können, aber Danke schonmal für die schnelle und zielgenaue Antwort! Ich melde mich dann wieder.
Seit er seinen neuen Computer hat, löst er alle Probleme, die er vorher nicht hatte!

RSE
Beiträge: 462
Registriert: Mi 30. Jul 2008, 13:11
OS, Lazarus, FPC: WinXP SP3 (L 0.9.28.2 FPC 2.2.4)
CPU-Target: 32Bit
Kontaktdaten:

Beitrag von RSE »

Habs heute noch geschafft. Die Nachricht heißt LM_ERASEBKGND. Sie hat mich zu der richtigen Prozedur EraseBackground(DC: HDC); virtual; geführt, die ich überschrieben und somit außer Kraft gesetzt habe. Jetzt flackert es nicht mehr :-)
Seit er seinen neuen Computer hat, löst er alle Probleme, die er vorher nicht hatte!

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)

Beitrag von pluto »

Bei den Windows Komponenten wird kein Buffer eingesetzt, sondern direkt gezeichnet.
darum stört diese Nachricht auch bei meinen meisten Anwendungen.
MFG
Michael Springwald

Antworten