![]() |
Treevieweintrag nicht löschen
Hallo!!
Ich habe ein eigenartiges Problem, wenn ich in einem Treeview einen Eintrag markierte und anschließend lösche funktioniert das ohne Probleme. Mein Problem ist es, dass ich kann ohne zu markieren Einträge löschen kann, wie kann ich das verhindern? MfG Master |
Re: Treevieweintrag nicht löschen
:gruebel:
Ohne zu markieren loeschen? Du koenntest im OnMouseUp der TreeView ueberpruefen, ob ein Node an der entsprechenden Stelle ist:
Delphi-Quellcode:
In diesem Fall zeig einfach kein Popupmenu an. So wie ich das mitgekriegt habe, loescht die TreeView beim Klick auf einen leeren Bereich nicht die aktuelle Markierung.
if TreeView1.GetNodeAt(X, Y) = nil then
Greetz alcaeus |
Re: Treevieweintrag nicht löschen
Hallo!!
nein, wenn kein Eintrag markiert ist löscht er willkürlich einen, ohne eine Auswahl zu treffen. z.B klicke ich in ein Memo und anschließend wieder auf den löschen Button, es ist zwar nichts markiert, aber er löscht trotzdem einen Eintrag Master |
Re: Treevieweintrag nicht löschen
Zitat:
Finde aber mal raus, ob meine Vermutung mit dem zuletzt markierten Knoten stimmt. Und zur Not koenntest du immer noch eine Sicherheitsabfrage einbauen... Greetz alcaeus |
Re: Treevieweintrag nicht löschen
Hallo!!
ja du hast recht, es wir der nächste übergeordnete Knoten gelöscht. Ich habe schon versucht zu prüfen ob ein Eintrag ausgewählt ist mit der Eigenschaft Selected, aber das wird in der If Abfrage nicht akzeptiert. Ja das mit der Abfrage könnte ich machen, aber es das ist nicht die beste Lösung. :coder2: :?: MfG Master |
Re: Treevieweintrag nicht löschen
Hallo,
Zitat:
Zitat:
Delphi-Quellcode:
Wenn ich es richtig verstanden habe, dann soll erst dann ein Knoten gelöscht werden können, wenn der Anwender selectiert hat.
if TreeView1.Selected <> nil then
showmessage('Ein Eintrag ist im TreeView selectiert'); So geht es:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin if TreeView1.Selected <> nil then begin TreeView1.Items.Delete(TreeView1.Selected); Button1.Enabled := False; end; end; procedure TForm1.TreeView1Enter(Sender: TObject); begin if TreeView1.Items.Count > 0 then//Zugriffsfehler vermeiden Button1.Enabled := True; end; procedure TForm1.TreeView1Exit(Sender: TObject); begin Button1.Enabled := False; end; |
Re: Treevieweintrag nicht löschen
Hi.
@lannes: OnExit wird doch aufgerufen, sobald ein anderes Control den Fokus erhält. Und das ist der Fall, wenn man auf den Button klickt, also wird in dem Moment in dem du klickst der Button deaktiviert :arrow: nix passiert ;-) |
Re: Treevieweintrag nicht löschen
Hallo,
Zitat:
Der Schalter wird zwar zuerst deaktiviert, danach wird aber OnClick aufgerufen. :thumb: |
Re: Treevieweintrag nicht löschen
Zitat:
Zitat:
Greetz alcaeus |
Re: Treevieweintrag nicht löschen
Hallo!!
Leider ist das ekine Lösung des Problems. Also schein das ganze ein Fehler im Delphi zu sein?! ICh hoffe es kenne jemand eine Lösung, denn ich habe keine Ahnung wie ich das Problem lösen soll. MfG Master |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:23 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