Autor |
Beitrag |
platzwart
      
Beiträge: 1054
Erhaltene Danke: 78
Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
|
Verfasst: Do 29.05.08 20:27
Hallo,
ich nutze Delphi 2007 Pro.
Ich habe einem TreeView eine ImageList zugewiesen. Bei der Initialisierung des TreeView zur Laufzeit wird ein entsprechendes Icon zugewiesen, so weit funktioniert alles wunderbar. Wenn ich nun auf ein Element des TreeView klicke, wird das zuvor zugewiesene Icon durch das Icon mit dem Imageindex "0" ersetzt. Klicke ich nun ein anderes Element an, so wird das Icon des vormals gewählten Elements wieder korrekt angezeigt.
Wie kann ich verhindern, dass das Icon beim Anklicken ersetzt wird?
Thx
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 29.05.08 20:36
Schau dir mal die Eigenschaften der Knoten an, du hast Image Index und Selected Index, Selected Index gibt das Bild an, das beim Anklicken angezeigt wird, standardmäßig steht da eine 0.
|
|
platzwart 
      
Beiträge: 1054
Erhaltene Danke: 78
Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
|
Verfasst: Do 29.05.08 20:47
Delphi-Quelltext 1: 2: 3:
| tv3_node:= TreeView3.Items.AddChild(nil, tmpNode.Text); tv3_node.ImageIndex:= 4; tv3_node.SelectedIndex:= -1; |
immer noch das gleiche Problem... Icon ist beim Anklicken das Icon mit dem Index "0" in der ImageList.
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 29.05.08 20:50
Es gibt ja auch kein Bild -1 in der ImageList. 
|
|
platzwart 
      
Beiträge: 1054
Erhaltene Danke: 78
Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
|
Verfasst: Do 29.05.08 20:56
OnClick:
Delphi-Quelltext 1:
| TreeView3.Selected.SelectedIndex:= TreeView3.Selected.ImageIndex; |
Bringt auch nix. Manchmal ist das Verhalten korrekt, manchmal nicht, absolut unvorhersagbar... Mal zeigt er nur Icon "0" an, mal das richtige, manchmal überlappt er beide...
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 29.05.08 21:02
Also wenn ich beim Hinzufügen der Knoten beiden Werten den korrekten Wert zuordne, dann klappt das wunderbar, in OnClick wie du es zuletzt geschrieben hast, wird es ja dann erst nach und nach korrigiert, das ist ja nicht Sinn der Sache.
Du musst einfach nur ImageIndex und SelectedIndex den Index deines Bildes zuordnen, wenn du den Knoten erzeugst.
|
|
platzwart 
      
Beiträge: 1054
Erhaltene Danke: 78
Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
|
Verfasst: Do 29.05.08 21:13
Wollte nur verhindern, dass ich bei jedem Ändern des ImageIndex auch immer den SelectedIndex mit ändern muss, dass ist verdammt nervig, doppelter Code.
Eine Option "SelectedIndex =ImageIndex" true/false würde viele Nerven schonen... So muss ich in einem Quelltext von mehreren tausend Zeilen immer dieses SelectedIndex mitschleppen...
Vielen Dank für die Hilfe!!!
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 29.05.08 21:20
Es wäre viel einfacher, wenn du dir eine Methode schreibst, die den Knoten erzeugt und beides einträgt...
|
|
platzwart 
      
Beiträge: 1054
Erhaltene Danke: 78
Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
|
Verfasst: Do 29.05.08 21:53
Nein, das Icon wird nicht dauerhaft zugewiesen, sondern während der Laufzeit mehrfach geändert.
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 29.05.08 21:54
Auch das lässt sich ja in eine eigene Methode auslagern, so dass es beim Aufruf wieder ein Einzeiler ist  .
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Do 29.05.08 22:42
wozu dient eigentlich der Event 'OnGetSelectedIndex'? 
_________________ Na denn, dann. Bis dann, denn.
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 29.05.08 23:59
Das wiederum kannte ich nicht, weil ich die Original TreeView nicht mehr benutze und nicht nachgeschaut habe. Aber es war eigentlich klar, dass es auch einfacher geht. 
|
|
|