AGB  ·  Datenschutz  ·  Impressum  







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

TTreeView auf Editieren stellen

Ein Thema von Mackhack · begonnen am 29. Aug 2006 · letzter Beitrag vom 30. Aug 2006
Antwort Antwort
Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#1

TTreeView auf Editieren stellen

  Alt 29. Aug 2006, 21:57
Hi,

wie kann man auf einfachste Art und weise es anstellen dass man in einem TTreeView einfach auf einen Eintrag klickt und dann entweder ich dort mit F2 den Text editieren kann oder dass die Eintraege in TEdit-Feldern erscheinen?

Danke!
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat
Benutzerbild von Cyberbob
Cyberbob

Registriert seit: 24. Jan 2005
Ort: Karben
626 Beiträge
 
Delphi XE7 Architect
 
#2

Re: TTreeView auf Editieren stellen

  Alt 29. Aug 2006, 22:05
Den Text des aktuell markierten Elements erhälst du per "TreeView.Selected.Text"

Etwa so:

Delphi-Quellcode:
procedure TForm.TreeViewClick(Sender: TObject);
begin
  Edit.Text := TreeView.Selected.Text;
end;

procedure TForm.ButtonClick(Sender: TObject);
begin
  Treeview.Selected.Text := Edit.Text;
end;
Christian
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#3

Re: TTreeView auf Editieren stellen

  Alt 29. Aug 2006, 22:07
Hi,

dank dir. Ich habe jetzt nur noch die Frage wie ich die Hirarchie davon noch in die EditFelder bekomme.
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#4

Re: TTreeView auf Editieren stellen

  Alt 29. Aug 2006, 22:11
Hallo,

im OnKeyDown des TreeView rufst Du damit den Inplace-Editor auf:
Delphi-Quellcode:
if assigned(TreeView1.Selected) then
    if Key = vk_F2 then
      TreeView1.Selected.EditText;
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#5

Re: TTreeView auf Editieren stellen

  Alt 29. Aug 2006, 22:17
Hi Lannes,
danke!

Hilft schon viel weiter!

Jetzt muesste ich aber noch hinbekommen dass ich wenn ich eben auf diesen Eintrag klicke 4 EditFelder gefuellt werden.
Einmal mit dem Root-Node, einem SubNode davon, davon noch ein SubNode und dem letzten SubNode.
Miniaturansicht angehängter Grafiken
ttreeview_671.png  
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#6

Re: TTreeView auf Editieren stellen

  Alt 29. Aug 2006, 22:54
Also das ja wohl Pipifax^^

Delphi-Quellcode:
procedure TForm2.TreeView1Click(Sender: TObject);
var item, root, c1,c2: TTreeNode;
begin
  if (Sender as TTreeView).Selected <> nil then
    begin
      item := (Sender as TTreeView).Selected;
      c2 := item.Parent; //einfach nach oben durchhangeln, zur sicherheit könnte man zwischendurch auf <> nil testen
      c1 := c2.Parent;
      root := c1.Parent;
    end;
end;
Wenn der Baum NICHT fest ist, ich also nur von deinen Vorgaben OHNE das Bild ausgehen kann, wirds natürlich schwieriger.

EDIT: willst du es so machen, dass man belibig reinklicken kann?!
Dann ist mein Ansatz... ungeeignet.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#7

Re: TTreeView auf Editieren stellen

  Alt 29. Aug 2006, 23:03
Hi Luke,

soweit ist der Baum Fest. Ja ich moechte einfach reinklicken koennen. Normalerweise nur in den ObjectName oder Translation.
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#8

Re: TTreeView auf Editieren stellen

  Alt 30. Aug 2006, 12:40
OK.... da es ja keine abzweigungen gibt, kann man auch gleich nach unten durchtraversieren:

Delphi-Quellcode:
procedure TForm2.TreeView1Click(Sender: TObject);
var node: TTreeNode;
    item, root, c1,c2: TTreeNode;
begin
  if ((Sender as TTreeView).Selected <> nil) then
    begin
      node := (Sender as TTreeView).Selected;
      case Node.Level of
        3: item := node; //translation geklickt
        2: item := node.getFirstChild; //objektname geklickt
        else Exit; //was anderes geklickt -> Abbruch
      end;
      c2 := item.Parent; //jetzt einfach nach oben durchhangeln
      c1 := c2.Parent;
      root := c1.Parent;
    end;
end;
Eigentlich immer noch relativ einfach... die OH hat zum Thema TTreeNode(s) auch einiges zu sagen
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#9

Re: TTreeView auf Editieren stellen

  Alt 30. Aug 2006, 17:48
Dank dir Luke.
Ich verstehe nur eins noch net so recht und zwar mit dem Case Statement.

Wenn ich auf die Translation klicke holt sich dein Code nicht das Erste Child aber wenn ich auf ObjectName klicke schon. Warum?
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#10

Re: TTreeView auf Editieren stellen

  Alt 30. Aug 2006, 19:12
item ist IMMER die Translation.

sollte dir das und die kommentare noch nicht reichen: das case statement macht folgendes: wenn die geklickte node die translation ist, wird item = geklickte node. wenn die geklcikte node das objekt ist, wird item = das erste child der geklickten node. ist doch auch die einzige möglichkeit...
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz