![]() |
TreeNode in TreeView verschwindet
Hallo zusammen,
folgendes problem: Ich ahbe eine Form, links ein TreeView, rechts zwei Panels der TreeView hat zwei Nodes: 'Panel1','Panel2' über diese Prozedur wird jedweils ein Panel sichtbar gemacht und das andere unsichtbar:
Delphi-Quellcode:
funktioniert auch perfekt.
procedure ChangeShowedPart(APanel : string);
begin Panel1.Visible:= APanel = 'Panel1'; Panel2.Visible:= APanel = 'Panel2'; end; Im OnCreate der Form werden dem Treeview die zwei genannten Nodes jeweils mit
Delphi-Quellcode:
hinzugefügt, danach wird mit
Clear;
AddChild('Panel1') AddChild('Panel2')
Delphi-Quellcode:
das erste der beiden selektiert.
Select(TopItem)
und dann die Funktion
Delphi-Quellcode:
aufgerufen, damit das entsprechende Panel angezeigt wird.
ChangeShowedPart(Selected.Text)
Soweit so gut. Im OnChange des TreeViews steht ebenfalls dieses
Delphi-Quellcode:
Wenn ich jetzt die Form mit ShowModal anzeigen lasse, verschwindet auf einmal die erste Node, das OnChange des TreeViews wird aufgerufen, das zweite Panel wird angezeigt und dann ist die verschwundene Node auf einmal wieder da. Und ich verzweifle solangsam, weil es kein OnShow Ereignis gibt und mir sonst auch nichts einfällt.
ChangeShowedPart(Selected.Text).
Warum verschwindet da das erste Node? HÜÜÜLLLFFFÄÄÄÄ :cry: :angel: Edit: Ich habs jetzt so gelöst, dass ich das OnChange des TreeViews im OnShow der Form zuweise.. dann gehts.. will aber trotzdem wissen was da los ist! Ergänzung: Nachdem die verschwundene Node wieder da ist wird das OnChange nochmals ausgeführt.. es wird auch das richtige Panel auf Visible gesetzt.. aber trotzdem sehe ich das Panel das laut den überwachten Ausdrücken visible = False hat :wall: :wall: :wall: Ergänzung2: aus dem Showmodal hab ich jetzt das gemacht.. und es funktioniert ohne ein OnShow:
Delphi-Quellcode:
Also muss es irgendwie mit dem ShowModal zusammenhängen oder? :gruebel: Aber was passiert da?
with TtfForm.Create(Self) do
try Show; tfMainForm.Enabled:=False; while Visible do Application.ProcessMessages; finally tfMainForm.Enabled:=True; Free; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:41 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