AGB  ·  Datenschutz  ·  Impressum  







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

Frage zur Virtual Tree View

Ein Thema von m0sch3r · begonnen am 6. Feb 2005 · letzter Beitrag vom 9. Feb 2005
Antwort Antwort
m0sch3r

Registriert seit: 29. Mär 2004
121 Beiträge
 
Delphi 7 Enterprise
 
#1

Frage zur Virtual Tree View

  Alt 6. Feb 2005, 17:11
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:
         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;
hatt jemmand einen tip...!?
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#2

Re: Frage zur Virtual Tree View

  Alt 6. Feb 2005, 22:57
Ist UTTreeData eine Klasse oder ein Record? Wenn es eine Klasse ist, dann kann data^.FCaption:= chuwak.name doch nicht richtig sein.
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
m0sch3r

Registriert seit: 29. Mär 2004
121 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Frage zur Virtual Tree View

  Alt 9. Feb 2005, 21:11
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
  Mit Zitat antworten Zitat
mason

Registriert seit: 15. Dez 2004
Ort: Magdeburg
30 Beiträge
 
Delphi 7 Professional
 
#4

Re: Frage zur Virtual Tree View

  Alt 9. Feb 2005, 22:27
Zitat von m0sch3r:
1. Welche Eingenschaft im VirtualTreeView sorgt dafur das beim doppelclick sich die Childnodes nicht einklappen...!? sondern die ganze Zeit ausgeklappt bleiben...
Wenn die Nodes generell ausgeklappt bleiben sollen, also auch, wenn man auf das - daneben klickt, dann kannst du einfach im Ereignis OnExpanding die Variable Allowed auf false setzen:
Delphi-Quellcode:
procedure TMyForm.VTCollapsing(Sender: TBaseVirtualTree; Node: PVirtualNode; var Allowed: Boolean);
begin
  Allowed := false;
end;
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:
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;
  Mit Zitat antworten Zitat
m0sch3r

Registriert seit: 29. Mär 2004
121 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Frage zur Virtual Tree View

  Alt 9. Feb 2005, 22:47
Danke, hat soweit geklappt...))

Noch mal zu meiner 2 Frage, gibt es vieleicht eine Eingenschaft die zwischen jedem Hauptnode ein Grid hin malt.....!?
  Mit Zitat antworten Zitat
mason

Registriert seit: 15. Dez 2004
Ort: Magdeburg
30 Beiträge
 
Delphi 7 Professional
 
#6

Re: Frage zur Virtual Tree View

  Alt 9. Feb 2005, 23:17
Zitat von m0sch3r:
Danke, hat soweit geklappt...))

Noch mal zu meiner 2 Frage, gibt es vieleicht eine Eingenschaft die zwischen jedem Hauptnode ein Grid hin malt.....!?
Ich kenn mich mit den Malereien nicht so aus - aber eine einfache Lösung wäre Folgendes im OnAfterItemPaint:
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;
  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 10:19 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