Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Treeview und Icons


Robert - So 18.08.02 23:34
Titel: Treeview und Icons
Hi! Wie fügt man denn zu Items in einer Treeview Icons hinzu?
Wenn ich eine ImageList erstelle und dort Bilder hinein tu, dann nimmt die Treeview beim Erstellen eines Items immer das erste Icon.
Was kann ich tun?


Deykin11 - Mo 19.08.02 01:02


Quelltext
1:
2:
3:
myTreeNode := Treeview.Items.Add(nil,'Knotenname');
myTreeNode.Imageindex := 0; //Icon des Knotens im Normalzustand
myTreeNode.selectedindex := 1; //Icon des Knotens im selektierten Zustand


Wenn sich der Knoten beim anlkicken nicht verändern soll, musst Du bei selectedindex eben den gleichen index eingeben wie bei Imageindex.


Robert - Mo 19.08.02 14:06
Titel: Danke
Danke! Funst einwandfrei!


Robert - Mo 19.08.02 15:49
Titel: noch ne Frage:
Hi! Eine Frage ergibt sich noch für mich.
Ist es möglich bei bei manchen Nodes Bildchen anzuzeigen, und bei manchen keine Bildchen anzuzeigen?
Wenn ich schreibe

Quelltext
1:
myTreeNode.Imageindex := -1;                    

wird ein weißes Icon angezeigt.


Deykin11 - Mo 19.08.02 18:24

GUte Frage?

Aber wenn er ein weißes Icon anzeigt und derHintergrund im TreeView auch weiß ist sieht es ja so aus als wär kein Icon da...


Robert - Mo 19.08.02 20:58
Titel: Nee, leider net
Nein, eben nicht. die Schrift ist dann um 16 Pixel nach rechts eingerückt.


Tino - Mo 19.08.02 22:59
Titel: Re: Nee, leider net
Robert hat folgendes geschrieben:
Nein, eben nicht. die Schrift ist dann um 16 Pixel nach rechts eingerückt.
Anders würde es doch auch optische nicht gut aussehen, oder?


Robert - Di 20.08.02 00:14
Titel: neja
Hi! Probier's doch mal so aus, wie ich es geschrieben hab. Dann bist du bestimmt gleicher Meinung.
Das sieht blöd aus. :evil:


Deykin11 - Di 20.08.02 00:18

Aber warum willst Du überhaupt, dass kein Symbol angezeigt wird?

Such oder erstell Dir doch ein Icon das zu zu Deinem Eintrag passt...


Tino - Di 20.08.02 01:04
Titel: Re: neja
Robert hat folgendes geschrieben:
Hi! Probier's doch mal so aus, wie ich es geschrieben hab
Habe ich... sonst hätte ich nicht geantwortet.


Robert - Di 20.08.02 09:10
Titel: gibts keins
Hi! Also gut: Was für ein Icon kann man für Ausgaben von Zeitschriften verwenden? 16 * 16 Pixel !
Für alles andere habe ich ja ein Icon. Aber dafür fällt mir nichts ein.


Tino - Di 20.08.02 09:20

Hab Dir gerade ein kleines Bitmap zugeschickt!

Gruß
TINO


Robert - Di 20.08.02 09:32
Titel: danke!
Hi! Das Icon ist super! :D
Es sagt zwar überhaupt nichts aus, ist aber ein super Platzfüller!
Danke!


Tino - Di 20.08.02 09:58
Titel: Re: danke!
Robert hat folgendes geschrieben:
Es sagt zwar überhaupt nichts aus
Ähä?!?! Das ist ein Buch. Sollte man doch erkennen können, oder? Aber egal!

Gruß
TINO


Robert - Di 20.08.02 10:03
Titel: ja, ja
Dass das ein Buch ist erkennt ein Blinder :wink: !
Ich meinte, dass man daran nicht erkennt, dass das für eine Ausgabe steht.
Für den Punkt Zeitschrift habe ich die Zeitschrifticons die immer auf der CD von denen sind; für CD habe ich ein Icon mit einer CD; für Programm habe ich das übliche Installieren-Icon (mit Softwarepaket und PC).
Nur beim Buch erkennt man halt nicht was es bedeuten soll.

Aber ich denke das hast du richtig erkannt mit:
Zitat:
Aber egal!


Robert - So 25.08.02 23:40
Titel: speichern?
Hi!
Ich hab noch mal eine Frage: Wie speichert man die Icons denn ab? Wenn ich die Treeview erneut lade, dann haben alle Nodes das Icon 0 der ImageList.


Tino - Mo 26.08.02 09:21

Robert hat folgendes geschrieben:
Wie speichert man die Icons denn ab? Wenn ich die Treeview erneut lade, dann haben alle Nodes das Icon 0 der ImageList.

Hast Du die Icons in einer ImageList gepackt reicht es beim speichern der TreeView neben der Captions der Items auch noch die Image Nummer (Selectiert, nicht selektiert) mit zu speichern und beim laden halt mit einlesen und den Items den gelesenen Wert zuweisen.

Gruß
TINO


Robert - Mo 26.08.02 12:39

Hi! Ja, die Bilder sind in einer ImageList. Könntest du mir das bitte noch mal irgendwie erklären? Versteh ich nicht, was du meinst.


Tino - Mo 26.08.02 13:10

HI Robert,

Du hast ja geschrieben
Robert hat folgendes geschrieben:
Wenn ich die Treeview erneut lade

das heißt ja das Du schon eine Lade-Routine geschrieben hast. Daneben wirst Du auch wohl eine Speichern-Routine geschrieben haben. Diese Routinen müsstest Du so erweitern das diese neben dem Caption Wert der Items auch noch den ImgeIndex Wert laden/speichern.

Gruß
TINO


Robert - Mo 26.08.02 13:14

Hi! Also:


Laden: TreeView1.LoadFromFile(Dateiname);

Speichern:TreeView1.SaveToFile(Dateiname);


Robert - Mo 26.08.02 15:32

Hi!

Tino hat folgendes geschrieben:
Hast Du die Icons in einer ImageList gepackt reicht es beim speichern der TreeView neben der Captions der Items auch noch die Image Nummer (Selectiert, nicht selektiert) mit zu speichern und beim laden halt mit einlesen und den Items den gelesenen Wert zuweisen.


Und wie macht man das?


Robert - So 01.09.02 17:43

Hi!
Meinst du folgendes?

Quelltext
1:
2:
3:
4:
Selected_text := Treeview1.Selected.Text;
Treeview1.Selected.ImageIndex := Copy(Selected_Text,  1,  1);
Delete(Selected_text, 1, 1);
Treeview1.Selected.Text := Selected_text;
Selected_Text ist eine String-Variable.

Dafür müssten beim Laden aber alle Items kurz selektiert werden, da es sonst nicht mit 'OnGetSelected' funktioniert. Meine Frage also:
Wie wählt man alle Items kurz aus und, wenn alle ausgwählt wurden, wieder das erste Item?


XPert - So 01.09.02 17:46

@robert:
100% :mrgreen:


Robert - So 01.09.02 17:51

Danke, dass du mir schon 3 Minuten nach meinem Post geantwortet hast!!!
Wie du dir vielleicht denken kannst bringt mir dieses Post wahnsinnig viel, da ich jetzt alles weiß!
Warum lässt du das nicht einfach?!


XPert - So 01.09.02 17:55

sorry! das war net beabsichtigt! ich wollte 100% für den kndidatensagen hatte gerade aber keine zeit....... :cry:


_____________________________________________________________
MfG Fabian Schweers
..::Wissen ist Macht, aber was ist Macht dann? Wissen?::..


Robert - So 01.09.02 19:59

Hi! Gut, du Xperte:
Dann schreib mir doch mal wie man das genau macht!
Vor allem das Abspeichern!