![]() |
[FM] TreeView editieren
Hallo,
gibt es eine Möglichkeit, Einträge in einem FMX.TreeView zu editieren? Oder kann man solch ein Verhalten irgendwie simulieren? |
AW: [FM] TreeView editieren
Liste der Anhänge anzeigen (Anzahl: 1)
Standardmäßig ist das hier leider nicht vorgesehen. Kann man aber leicht simulieren.
Z.B. wenn Du ein TreeviewItem selektiert hast und F2 drückst, dann zeigst Du halt ein TEdit an der Position des Items an, kopierst den Text des TV-Items in das Edit und übernimmst den TEdit-Text nach Enter wieder in das Item und machst das Edit wieder unsichtbar. Hier mal ein schnell dahingeschriebenes Demo, wenn ein Treeview auf einer Form liegt und ein unsichtbares TEdit (das gewinnt jetzt keinen Schönheitswettbewerb, soll aber auch nur ein kleiner Input für die generelle Vorgehensweise sein):
Delphi-Quellcode:
Siehe anliegenden Screenshot.
procedure TForm12.Edit1Exit(Sender: TObject);
begin TEdit(Sender).Visible := false; end; procedure TForm12.Edit1KeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); begin if Key = vkReturn then begin if Treeview1.Selected <> NIL then begin Treeview1.Selected.Text := Edit1.Text; end; edit1.Visible := false; Treeview1.SetFocus; end; if Key = vkEscape then begin edit1.Visible := false; end; end; procedure TForm12.TreeView1KeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); var tv : TTreeviewItem; tp: TPointF; begin if Key = vkF2 then begin if Treeview1.Selected <> NIL then begin tv := Treeview1.Selected; tp := tv.LocalToAbsolute (PointF (tv.Position.X, tv.Position.y)); if tv.level = 1 then begin edit1.position.x := tp.x + 16; end else begin edit1.position.x := tp.x; end; edit1.Position.Y := tp.Y - tv.position.y; edit1.Width := Treeview1.Position.X + Treeview1.Width - edit1.Position.x - 2; edit1.Text := tv.Text; edit1.Visible := True; edit1.BringToFront; edit1.SetFocus; edit1.SelectAll; end; end; end; |
AW: [FM] TreeView editieren
Hallo Harry,
ich habe es jetzt etwa so umgesetzt, wie du es vorgeschlagen hast. Ein Editfeld im TreeView nicht sichtbar. Und bei Klick auf ein ausgewähltes Element wird das Editfeld sichtbar und in das TreeViewItem eingefügt. Wenn die Änderung abgeschlossen ist, wird es wieder unsichtbar und in den TreeView gesteckt. So brauch ich mich nicht mehr um die Position des Editfelds kümmern kann ich auch den Inhalt des TreeView austauschen. Danke. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:19 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