[gelöst] TreeGadget mit Icons > 16x16 ?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

Beitrag von scholly »

Shardik hat geschrieben:

Code: Alles auswählen

  ; ----- Alte Image-Liste löschen
  ImageList_Destroy_(OldImageList) 
(warum) ist das (hier) notwendig ?

Ich habe die statischen Einträge im TreeGadget drin, aber während des Programmablaufs sollen dynamisch Sub-Items hinzugefügt werden, wenn der Benutzer die Inhalte in einem nebenstehenden ListIcon einschränken will.

Würde es nicht reichen die alte Liste vor Beendigung des Programms zu löschen ?

bis denne... scholly
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
Benutzeravatar
Shardik
Beiträge: 746
Registriert: 25.01.2005 12:19

Beitrag von Shardik »

scholly,

das Löschen der alten Image-Liste erfolgt, weil sie ja vorher durch die neu angelegte ersetzt wurde und damit überflüssig geworden ist. Es ist auch kein Problem, nachträglich neue Elemente der neuen Image-Liste hinzuzufügen. Dabei sollte nur beachtet werden, daß die neuen Elemente auch noch hineinpassen. Beim Anlegen der neuen Image-Liste in meinem letzten Beispiel-Code

Code: Alles auswählen

NewImageList = ImageList_Create_(IconWidth, IconHeigth, #ILC_COLOR32 | #ILC_MASK, 0, 10)
steht die Ziffer 10 für die maximale Anzahl der Elemente, die die Image-Liste enthalten kann. Dieser Wert sollte dann bei Bedarf entsprechend erhöht werden.
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

Beitrag von scholly »

Shardik hat geschrieben: Es ist auch kein Problem, nachträglich neue Elemente der neuen Image-Liste hinzuzufügen.
Hm...
Wenn ich die alte Liste lösche und dann neue Sub-Items einfüge, stimmen die dargestellten mit den geladenen Icons nicht überein.
Da ich aber jederzeit damit rechnen muß, daß der Benutzer durch eine Aktion unter irgendeinem Node neue Sub-Items generiert, bleibt IMHO nur, die alte Liste als letztes vor dem Programmende zu löschen.
Und wenn sie nur Speicherplatz belegt und sonst keine Probleme bereitet, reicht es ja, sie klein zu halten (z.B. nur die Top-Nodes einrichten) und alle Sub(-Sub)-Items nach dem Ersetzen durch die neue Liste zu generieren.
Dabei sollte nur beachtet werden, daß die neuen Elemente auch noch hineinpassen.
Da knabber ich noch etwas dran.
Hab ich heute ca. 800 CDs/DVds zu verwalten, könnte wer anderer wesentlich mehr haben.
Andererseits kann ich mir nun wirklich nicht vorstellen, daß jemand für jedes Item, das ein anderes Medium repräsentiert oder für jeden "Artist" ein eigenes Icon nutzen will.
Als Lösung zur Dimensionierung werde ich wohl int cGrow in den Programm-Prefs setzen, dann braucht nicht neu kompiliert zu werden ;)

bis denne... scholly
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
Antworten