![]() |
TreeView Bitmaps zur Laufzeit ändern
Hallo,
ich habe ein Problem mit der Änderung einer Bitmap in einen TreeView. Beim anclicken einer DBCheckBox, soll sich an dem markierte Knoten die Bitmap ändern. Dies funktioniert aber nur beim letzten Knoten, egal welcher Knoten makiert ist.
Delphi-Quellcode:
Vieleicht kann mir einer weiterhelfen ?
if TreeView1.Selected <> nil then
begin if not DBCheckBox1.Checked then begin m_Ebene3.SelectedIndex := 3; Repaint; end; end; [edit=SirThornberry]Delphi-Tags ergänzt. Mfg, SirThornberry[/edit] |
Re: TreeView Bitmaps zur Laufzeit ändern
Herzlich willkommen in der Delphi-PRAXiS, Chemiker.
Du prüfst zwar, ob ein Knoten selektiert ist, arbeitest dann aber mit m_Ebene3 - welcher Knoten das auch immer sein mag. In welcher Beziehung stehen die Knoten der TreeView denn zu den Datensätzen? Verschiebt die Knotenauswahl den Datensatzzeiger? Normalerweise besorgt sich die TreeView die Nummer des benötigten Bildes über das Ereignis OnGetSelectedIndex(), du aber scheinst zu versuchen den Index im event handler OnClick() der DBCheckBox zu setzen. Freundliche Grüße vom marabu |
Re: TreeView Bitmaps zur Laufzeit ändern
[list][*]Hallo marabu,
Die Datensätze sind einfach als Text übergeben worden und sind nicht direkt mit der Datenbank verbunden. TreeView - Aufbau: [center]Machinen (m_Ebene1) | |-----Tank1 (m_Ebene2) | | | |------ Temperatur vom Tank 1 (m_Ebene3) | |-----Tank2 (m_Ebene2) | |------ Temperatur vom Tank 2 (m_Ebene3) | |------ Druck vom Tank 2 (m_Ebene3) usw. vor den Knoten der m_Ebene3 sind Bitmaps und diese will ich verändern: z.B.: Temperatur von Tank 1 ist ausgewählt, anschliessend gehe ich auf die DBCheckBox und ändere deren Zustand. Anschliessend soll sich die Bitmap vom Eintrag Temperatur von Tank 1 ändern. Um den Knoten zu löschen, gehe ich so vor, dass funktioniert auch. if TreeView1.Selected <> nil then begin TreeView1.Items.Delete(TreeView1.Selected); MStellenTable.Delete; end; Der markierte Knoten wird gelöscht. ===> Auf die gleiche Weise würde ich gerne die Bitmap ändern, nur habe ich keine Idee. |
Re: TreeView Bitmaps zur Laufzeit ändern
Wenn du weißt, dass du beim Ändern der DBCheckBox das Image des gerade markierten Knoten ändern möchtest, dann versuche es mal mit der Eigenschaft ImageIndex von TreeView.Selected - über die Eigenschaft SelectedIndex steuerst du ja nur die visuelle Hervorhebung beim Wechsel des markierten Knoten.
Gute Nacht marabu |
Re: TreeView Bitmaps zur Laufzeit ändern
Hallo marabu,
danke für die Antwort. Ich habe beide Befehl ausprobiert habe aber das Problem das unabhängig wie die DBCheckBox geändert wird sich die Bitmap ändert. Ich habe einfach das Problem das sich das Programm nicht merkt welcher Knoten markiert ist, wenn ich auf die DBCheckBox clicke um den Zustand zu ändern. Ich habe es jetzt erstmal so gelöst das ich den kompletten Baum lösche und anschliessend mit den geänderten Daten wieder neu Aufbaue. Das sieht nur doof aus. Ich bin nur leider jetzt 14 Tage nicht online, wenn Du eine Antwort hast kann ich erst in 14 Tage wieder antworten. Bis bald Chemiker |
Re: TreeView Bitmaps zur Laufzeit ändern
Das liest sich alles sehr abenteuerlich. Melde dich einfach nochmal, wenn du wieder online bist.
Freundliche Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz