Hallo,
erstmal zu den Iconen im VirtualStringTree:
Ich hab's raus! Ich hab's wirklich raus!!!
Es geht in
Delphi-Quellcode:
procedure TForm1.VSTRechtsAfterCellPaint(Sender: TBaseVirtualTree;
TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
CellRect: TRect);
Man muss dann noch etwas mit Margin spielen und den "Textanfang" der Node berechnen.
Das ist aber leicht! Die VirtualTrees.pas macht es vor!
Malen sollte man die mit DrawIconEx. Macht sich am besten und man braucht vieles nicht zu beachten. Das geschieht dann automatisch!
Zu den Imagelisten:
Es ist Euch vielleicht noch nicht aufgefallen, aber ich bin da schon ziemlich schmerzhaft an die Grenze gekommen - soll heißen: Ich habe eine Weile gebraucht, um zu kapieren, dass es die Liste selber ist, die begrenzt ist! Dazu steht übrigens auch etwas in irgendeinem Forum. (Nicht von mir!)
Bei der Systemimagelist wird das alles etwas anders (vom System) verwaltet. Die macht wohl so eine Art Verkettung, wie Ihr sie ja mit OnGetImageIndexEx vermutet. Ich kennen diese Funktion nicht und habe auch noch nicht weiter danach geguckt... Ich habe gerade noch mal geguckt. Bei mir (Delphi 7 Pro) gibt es das EX nicht, nur ohne!
Natürlich kann man immer auch mit mehreren Imagelisten hantieren kann, eine ordentliche Verwaltung dafür ist aber ein riesiger Aufwand.
Ausserdem nutze ich keine
VCL-Treeviews mehr. Der Virtualtreeview von Mike Liscke ist unvergleichbar viel besser!
Gruß
Matthias