![]() |
Frage zur Virtual Tree View
Habe seit einiger Zeit - einen komischen bug...
In meinem VST verschwindent ein childnode einfach so nach einer gewissen zeit und zu dem auch noch nicht jedesmal.. ich habe in die ganzen on erreignisse debugmessages eingebaut, sie werden aber beim verschwinden nicht aufgerufen - ich kann den fehler nicht mal localisieren...!!! Der bug ist erst seit einiger zeit da... das ist die procedure zum hinzufugen des childnodes
Delphi-Quellcode:
hatt jemmand einen tip...!?
form1.UsersOnlinVST.nodeDatasize := Sizeof(UTTreeData);
form1.UsersOnlinVST.BeginUpdate; Hauptknoten := form1.UsersOnlinVST.GetFirst() ; Knoten := form1.UsersOnlinVST.AddChild(form1.UsersOnlinVST.GetFirstChild( Hauptknoten)); data := form1.UsersOnlinVST.GetNodeData(Knoten); form1.UsersOnlinVST.ValidateNode(knoten, true); dummy:= Chuwak.name; data^.FCaption:= chuwak.name; Unterknoten:= form1.UsersOnlinVST.AddChild(knoten); data := form1.UsersOnlinVST.GetNodeData(UnterKnoten); data^.FCaption:= Chuwak.decs; form1.UsersOnlinVST.NodeHeight[unterknoten] := 13; form1.UsersOnlinVST.EndUpdate; form1.UsersOnlinVST.FullExpand(); form1.UsersOnlinVST.Repaint; |
Re: Frage zur Virtual Tree View
Ist UTTreeData eine Klasse oder ein Record? Wenn es eine Klasse ist, dann kann data^.FCaption:= chuwak.name doch nicht richtig sein.
|
Re: Frage zur Virtual Tree View
das Problemm war gelöst.
habe leider noch paar kleine Fragen...!!! 1. Welche Eingenschaft im VirtualTreeView sorgt dafur das beim doppelclick sich die Childnodes nicht einklappen...!? sondern die ganze Zeit ausgeklappt bleiben... 2. Kann man zwischen jedem 0'ten nodelevel einen strich ziehen....!? bzw. Hauptnode |------Unternode |------Unternode -------------------------------------------------- <strich Hauptnode |------Unternode |------Unternode -------------------------------------------------- <strich Hauptnode |------Unternode |------Unternode Danke im Voraus |
Re: Frage zur Virtual Tree View
Zitat:
Delphi-Quellcode:
Wenn allerdings nur bei einem Doppelklick nichts passieren soll, fällt mir nur ein, dass du im OnDblClick eine Variable auf true setzt, und im OnExpanding dann abfragst, ob diese true ist - dann setzt du wieder Allowed false, ansonsten Allowed auf true:
procedure TMyForm.VTCollapsing(Sender: TBaseVirtualTree; Node: PVirtualNode; var Allowed: Boolean);
begin Allowed := false; end;
Delphi-Quellcode:
type
TMyForm = class(TForm) VT: TVirtualStringTree; ... procedure VTCollapsing(Sender: TBaseVirtualTree; Node: PVirtualNode; var Allowed: Boolean); procedure VTDblClick(Sender: TObject); private IsDblClick: boolean; end; implementation procedure TMyForm.VTDblClick(Sender: TObject); begin IsDblClick := true; end; procedure TMyForm.VTCollapsing(Sender: TBaseVirtualTree; Node: PVirtualNode; var Allowed: Boolean); begin Allowed := not IsDblClick; if IsDblClick then IsDblClick := false; end; |
Re: Frage zur Virtual Tree View
Danke, hat soweit geklappt...:)))
Noch mal zu meiner 2 Frage, gibt es vieleicht eine Eingenschaft die zwischen jedem Hauptnode ein Grid hin malt.....!? |
Re: Frage zur Virtual Tree View
Zitat:
Delphi-Quellcode:
procedure TForm1.VTAfterItemPaint(Sender: TBaseVirtualTree;
TargetCanvas: TCanvas; Node: PVirtualNode; ItemRect: TRect); var r: TRect; begin if (VT.GetNodeLevel(Node) = 0) and (VT.AbsoluteIndex(Node) > 0) then begin r.Left := ItemRect.Left; r.Right := ItemRect.Right; r.Top := ItemRect.Top; r.Bottom := ItemRect.Top + 1; TargetCanvas.Brush.Color := clBlack; TargetCanvas.FillRect(r); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:58 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