AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[FM] TreeView editieren

Ein Thema von quaero · begonnen am 2. Feb 2016 · letzter Beitrag vom 22. Feb 2016
 
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.561 Beiträge
 
Delphi 12 Athens
 
#2

AW: [FM] TreeView editieren

  Alt 2. Feb 2016, 21:59
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:
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;
Siehe anliegenden Screenshot.
Angehängte Grafiken
Dateityp: jpg TVInfo.jpg (28,5 KB, 18x aufgerufen)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:48 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