Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TVirtualTreeView: 2 Images nebeneinander ? (https://www.delphipraxis.net/139598-tvirtualtreeview-2-images-nebeneinander.html)

hoika 1. Sep 2009 10:47


TVirtualTreeView: 2 Images nebeneinander ?
 
Hallo,

ich muss in einer Spalte 2 Images nebeneinander packen.
das es mit dem TVST geht, ist klar (der kann ja alles ;) ),
aber wie mache ich das nur ?

Aktuell gehe ich über OnGetImageIndex.


Danke


Heiko

chaosben 1. Sep 2009 11:38

Re: TVirtualTreeView: 2 Images nebeneinander ?
 
So aus der Hüfte geschossen:
Beleg die Images und die Stateimages-Property. Und schon solltest du 2 Bilder haben.

hoika 1. Sep 2009 12:23

Re: TVirtualTreeView: 2 Images nebeneinander ?
 
Hallo,

ein Schuss, ein Treffer ;)

Im OnGetImageIndex kommt dann die Unterscheidung.

Delphi-Quellcode:
   
if (Column=0) and
       (Kind<>ikOverlay) then
    begin
      if Kind=ikState then
      begin
        ImageIndex:= C_ImageListIndex_Yellow;
        Exit;
      end;

    // hier das normale Image
Zusätzlich sollte man noch ein weisses Image anlegen
und das als alternative zuweisen (wenn nichts gesetzt werden soll),
sonst "wandert" der Text hin und her.


Danke

hoika 1. Sep 2009 12:45

Re: TVirtualTreeView: 2 Images nebeneinander ?
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo,

mit dem weissen Image klappt leider nicht.
Das weisse Image ist trotzdem da,
wenn die Zeile selektiert wird.

Das State-Image wird nicht immer angezeigt (das ist Absicht).
Der Platz wird dafür aber dann nicht freigehalten.

Ich habe die beiden Screenshots mal hochgeladen.

Der selected Node zeigt das weisse Image dummerweise an ;(

Ein Sender.Selected[Node] abzuprüfen klappt auch nicht.


Heiko

hoika 1. Sep 2009 13:34

Re: TVirtualTreeView: 2 Images nebeneinander ?
 
Hallo,

geschafft !!!

Der Link hat mir weitergeholfen.

http://www.delphi32.com/info_facts/faq/faq_367.asp


Ich habe mir einfach ein komplett weisses Image erzeugt
(RGB 3mal 255), das kommt in die ImageList.

und dann tata

Delphi-Quellcode:
var
  Bitmap: TBitmap;
begin
  Bitmap:= TBitmap.Create;
  try
    ImageList_TrafficColor.GetBitmap(6, Bitmap);
    Bitmap.TransparentColor:= clWhite;
  finally
    Bitmap.Free;
  end;
6 ist der Index des transparenten Images (ist also das 5.)


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:59 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