Autor |
Beitrag |
MDX
      
Beiträge: 595
Erhaltene Danke: 4
Windows 8.1, Linux Debian 8, Android Lollipop
Delphi, PHP, Java (Android)
|
Verfasst: So 29.05.11 13:37
Hey...
nachdem ich hier www.delphi-forum.de/viewtopic.php?t=105683 endlich geschafft habe die Daten hinzuzufügen, würde ich diese nun auf Klick wieder entfernen (die markierte Spalte) und bei klick auf die Spalte selbst edtierbar machen (jedoch nur eine, die zweite Spalte).
Ich hab hier gelesen, dass es scheinbar nur möglich sein soll den RootNode zu bearbeiten? Stimmt das oder gibt es da doch eine Möglichkeit zu auch ChildNodes zu bearbeiten?
Ich hab es mal mit folgendem Probiert, wobei ich dann jeweils nur die erste (Root) Spalte bearbeiten kann.. Der Text wird leider aber auch nicht gespeichert...
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TForm1.vstEditing(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; var Allowed: Boolean); begin Allowed:=Sender.GetNodeLevel(Node)<1; end;
procedure TForm1.VSTNewText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; NewText: string); var kdaten:TEntries; begin kdaten:=Sender.GetNodeData(Node.Parent); if Assigned(kdaten) then kdaten.wid:=NewText; end; |
Leider scheint es im ganzen Internet kein vernünftiges Tutorial zu geben, das einem richtig hilft....
Danke...
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 29.05.11 21:03
Also erstens musst du das ganze überhaupt editierbar machen. Dafür setzt du unter TreeOptions --> MiscOptions toEditable auf True. Dann musst du die Spalten einzeln markieren können. Dafür setzt du unter TreeOptions --> SelectionOptions toExtendedFocus auf True. Dann brauchst du noch OnNewText was du ja schon hast um den Text auch zu speichern.
Beispiel im Anhang, wobei ich die Spalte erst einmal nicht beachte beim Speichern.
Einloggen, um Attachments anzusehen!
Für diesen Beitrag haben gedankt: MDX
|
|
MDX 
      
Beiträge: 595
Erhaltene Danke: 4
Windows 8.1, Linux Debian 8, Android Lollipop
Delphi, PHP, Java (Android)
|
Verfasst: So 29.05.11 21:51
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 30.05.11 05:16
|
|
MDX 
      
Beiträge: 595
Erhaltene Danke: 4
Windows 8.1, Linux Debian 8, Android Lollipop
Delphi, PHP, Java (Android)
|
Verfasst: Mo 30.05.11 07:09
Ich hab die Lösung wahrscheinlich zu für einfach gehalten dass ich das total überlesen hatte was genau im Kopf der Prozedur steht
Aber noch eine kleine Frage, wieso hat das Ding keine Funktion names onselect? 
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 30.05.11 07:40
Weil das ja nur das Markieren abdecken würde. Dir geht es aber um den Fokus.
Stattdessen gibt es OnFocusChanged, das sowohl beim Fokusgewinn als auch beim Verlust des Fokus ausgelöst wird (dann ist Node nicht Assigned).
|
|
|