Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi VST AfterItemErase seltsames Phänomen?! (https://www.delphipraxis.net/137831-vst-afteritemerase-seltsames-phaenomen.html)

newbe 29. Jul 2009 10:51


VST AfterItemErase seltsames Phänomen?!
 
Hallo zusammen!

Ich habe ein Problem mit dem VirtualStringTree. Ich versehe den Baum im Ereignis onAfterItemErase mit gif Grafiken, die ich
auf die Itemcanvas painte. Das funktioniert auch soweit. Nur wenn ein anderes Fenster über dem Baum liegt, hinterlässt es
im Baum auf diesen Nodes dann Abdrücke. Wenn ich das Fenster im Vordergrund hin und her schiebe, kann ich sozusagen auf den
Nodes herumstempeln.

Wenn ich die Grafik im onBeforeItemPaint zeichne, tritt dieses Phänomen nicht auf! Allerdings muss ich dazu Customdraw auf True setzten, damit die Grafik auch angezeigt wird. Dies hat natürlich zur Folge, das ich auch die Nodetext selber zeichnen
müsste (was nicht das Problem wäre), sonder auch das Expand Kreuz Symbol, und damit komme ich nicht klar.

Hat vielleicht jemand ne Lösung oder kann einen Tipp geben?

mfG Newbe

newbe 30. Jul 2009 13:59

Re: VST AfterItemErase seltsames Phänomen?!
 
*push*

generic 30. Jul 2009 14:38

Re: VST AfterItemErase seltsames Phänomen?!
 
klingt so, als ob du die Fläche nicht leerst.
Wenn du das Ereignis nutzt musst du dich drum kümmern, dass die Fläche erased wird.

newbe 30. Jul 2009 14:59

Re: VST AfterItemErase seltsames Phänomen?!
 
Hallo Generic!

Du meinst ich soll vor jedem Paint die Itemfläche komplett löschen??

Momenmtan Zeichne ich die Grafiken nur bei 3 Nodes im Baum als interne Header sozusagen

-> if Data.id = 1 then
begin
Targetcanvas.Draw(itemrect.left,itemrect.right, image1.picture.graphic)
end;

mfG newbe

Assertor 30. Jul 2009 15:43

Re: VST AfterItemErase seltsames Phänomen?!
 
Hi,

Zitat:

Zitat von newbe
Ich habe ein Problem mit dem VirtualStringTree. Ich versehe den Baum im Ereignis onAfterItemErase mit gif
Grafiken, die ich auf die Itemcanvas painte.

Probier mal OnAfterCellPaint, das funktioniert jedenfalls bei mir genau wie von Dir gewünscht.

Gruß Assertor

newbe 31. Jul 2009 17:26

Re: VST AfterItemErase seltsames Phänomen?!
 
@Assertor

Damit kann ich doch aber nur in eine Celle zeichnen weil ich das Itemrect doch gar nicht habe, sonder nur cellrect oder?

mfg newbe

Assertor 31. Jul 2009 21:13

Re: VST AfterItemErase seltsames Phänomen?!
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi newbe,

Zitat:

Zitat von newbe
@Assertor
Damit kann ich doch aber nur in eine Celle zeichnen weil ich das Itemrect doch gar nicht habe, sonder nur cellrect oder?

Richtig. Was willst Du denn genau zeichnen lassen? Normalerweise ist doch das Zeichnen in einer Zelle schon ausreichend, oder soll etwas gezeichnet werden, was als Hintergrund über mehrere Zellen hinweg geht?

Ich verwende OnAfterCellPaint z.B. um mehrere eigene Icons frei innerhalb einer Spalte pro Zeile zu zeichnen. Das sind Statusicons, die z.B. den Speicher oder Druckstatus wiedergeben. Screenshot mal anbei.

Gruß Assertor


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz