Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi VirtualTreeView: Es klappt nicht ganz (https://www.delphipraxis.net/70508-virtualtreeview-es-klappt-nicht-ganz.html)

generic 1. Jun 2006 09:34

Re: VirtualTreeView: Es klappt nicht ganz
 
das sieht sehr komplizert aus.
die vcl hat doch noch die klasse tpersistent.
warum leitest du nicht von der ab und nutzt die methoden der vcl um objekte in streams zu speichern?
(ich muss zugeben mit dem thema habe ich mich noch nicht beschäftigt)

JPSelter 9. Jun 2006 13:36

Re: VirtualTreeView: Es klappt nicht ganz
 
So, habe heute endlich mal weitermachen können an dem Projekt. Laden und Speichern funktioniert jetzt einwandfrei. Nächstes Problem:

Ich rechtsklicke auf einen Node, um auf einem PopUpMenu "edit" auszuwählen. Dann erscheint ein neues Formblatt in das ich einen neuen Namen für den Knoten eintippe. Dann klicke ich auf Speichern und das Formblatt verschwindet. Der Name des Knotens wird nun im VST aktualisiert und angezeigt. Problem: Solange der Knoten immer noch blau selektiert ist bleibt diese "blaue Box" wie sie vorher war und passt sich nicht der neuen Wortlänge an. Ich muss erst woandershin klicken und zurückklicken, dann ist die "blaue Selektionsbox" so breit wie der Name des Knotens. Versteht Ihr was ich meine? Ich mache sonst maln Screenshot. Gibts irgendwie eine Repaint-Funktion, falls die überhaupt die Lösung wäre?

Dale 9. Jun 2006 13:43

Re: VirtualTreeView: Es klappt nicht ganz
 
da sollte folgendes helfen:
Delphi-Quellcode:
VirtualTreeView.InvalidateNode(Node);

Gruß Dale

JPSelter 9. Jun 2006 13:49

Re: VirtualTreeView: Es klappt nicht ganz
 
Wann genau soll ich das ausführen? Ich habs jetzt nach der Knotenaktualisierung, aber es passiert nichts.

Dale 9. Jun 2006 13:54

Re: VirtualTreeView: Es klappt nicht ganz
 
hm, wundert mich, dass es nicht funktioniert. Versuchs mal mit:

Delphi-Quellcode:
VirtualTreeView.BeginUpdate;
...
// Knoten aktualisieren;
...
VirtualTreeView.EndUpdate;
ansonsten solltest du mal den Quelltext posten.

Gruß Dale

JPSelter 9. Jun 2006 14:03

Re: VirtualTreeView: Es klappt nicht ganz
 
Hier etwas Code, es klappt immernoch nicht:

Delphi-Quellcode:
procedure updateSession;
var Data: PTreeData;
begin
  Form1.VST1.BeginUpdate();
  Data := Form1.VST1.GetNodeData(currentNode);
  TSessionObject(Data.FObject).datum:=datetimetounix(Form1.DateTimePicker1.date);
  [...]
  Form1.VST1.EndUpdate();
  Form1.VST1.InvalidateNode(currentNode);
end;
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin
  if editmode then
    updatePoint
  else
    insertPoint;
  saveTree;
  editmode:=false;
  close;
end;
currentNode ist global und enthält die aktuell selektierte Node.

Dale 9. Jun 2006 14:53

Re: VirtualTreeView: Es klappt nicht ganz
 
Stimmt alles was du geschrieben hast,

es hilft nur folgendes: (ich habs getestet)

Delphi-Quellcode:
VirtualStringTree.BeginUpdate;
...
VirtualStringTree.ReinitNode(CurrentNode, False);
VirtualStringTree.EndUpdate;
Gruß Dale

JPSelter 14. Jun 2006 08:39

Re: VirtualTreeView: Es klappt nicht ganz
 
So, da bin ich wieder. Hab den Vorschlag mit dem ReInitNode getestet, aber es wirkt sich immernoch nicht positiv auf das Programm aus. Habe auch mal dieses RepaintNode ausprobiert, aber es klappt nicht. Vielleicht liegt der Fehler woanders, ich schau nochmal rein...


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 Uhr.
Seite 3 von 3     123   

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