Hello all,
 
I was hoping if someone knows something about Virtual Tree.
 
When I load my records it's putting it on the screen one by one,
I used to have a  for next loop where it was loading al the records, but was
taking 7-10 seconds to load, while it suppose to be instantly
 
this is what it is now, and hope somebody could help me.
 
thanks so much
 
   Perry
 
 
 
unit dsmain; 

interface 

uses 
  Windows, Messages, 
   SysUtils, 
      Controls, Forms, 
  Dialogs,StdCtrls, 
  ShellAPI, IniFiles, ComCtrls, ExtCtrls, 
  DB,VirtualTrees,registry,FileCtrl,  ABSMain, Classes; 

  type 

  PTreeData = ^TnodeData; 
  Tnodedata = record 
        myrom          : integer; 
        romnumber      : string; 
        romname        : string; 
        ownrom         : integer;//string; 
        location       : string; 
        publisher      : string; 
        languages      : string; 
        serial         : string; 
        crc            : string; 
        size           : string; 
        genre          : string; 
  end; 


   TdsmainForm = class(TForm) 
    vtree: TVirtualStringTree; 
    RomDatabase: TABSDatabase; 
    ABSQuery1: TABSQuery; 
    ABSQuery2: TABSQuery; 
    ABSroms: TABSTable; 
    Button1: TButton; 
    Button2: TButton; 


    procedure FormCreate(Sender: TObject); 
    procedure vtreeGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; 
      Column: TColumnIndex; TextType: TVSTTextType; var CellText: string); 
    procedure Button1Click(Sender: TObject); 
    procedure Button2Click(Sender: TObject); 
    procedure vtreeInitNode(Sender: TBaseVirtualTree; ParentNode, 
      Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates); 
  private 
    { Private declarations } 
    public 
    { Public declarations } 


 { Public declarations } 

  Node: PVirtualNode; 
  Data: PTreeData; 

  end; 

var 
  dsmainForm  : TdsmainForm; 

{$endregion} 

implementation 

{$R *.dfm} 



procedure TdsmainForm.vtreeGetText(Sender: TBaseVirtualTree; 
  Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; 
  var CellText: string); 
var 
ownr : string; 
begin 
  Data := Sender.GetNodeData(Node); 
  if assigned(data) then 
  begin 
 if Data.ownrom=0 then ownr:='' else ownr:='Yes'; 
   case Column of 
     0: CellText := data.romnumber ; 
     1: CellText := Data.romname ; 
     2: CellText := ownr; 
     3: celltext :=data.location; 
     4: celltext :=data.publisher; 
     5: celltext :=data.languages ; 
     6: celltext :=data.serial ; 
     7: celltext :=data.crc; 
     8: celltext :=data.size; 
     9: celltext :=data.genre; 



  end; 
end; 
end; 

procedure TdsmainForm.vtreeInitNode(Sender: TBaseVirtualTree; ParentNode, 
  Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates); 
  var 
   tst : string; 
   i : integer; 
  begin 

  tst:='SELECT roms.* ,pic.* FROM roms LEFT JOIN pic ON roms.romnumber =
pic.romnumber where roms.romnumber="'+inttostr(Node.Index)+'" ORDER by
romnumber ASC'; 
  absquery1.SQL.Text := tst; 
  absquery1.open ; 
   if absquery1.RecordCount <> 0  then 
      begin 
      Data := Sender.GetNodeData(Node); 
      data.romnumber:=Absquery1.fieldbyname('romnumber').AsString ; 
      data.romname :=Absquery1.fieldbyname('romname').AsString ; 
      data.location:=Absquery1.fieldbyname('location').AsString ; 
      data.publisher:=Absquery1.fieldbyname('publisher').AsString ; 
      data.languages:=Absquery1.fieldbyname('languages').AsString ; 
      data.serial:=Absquery1.fieldbyname('serial').AsString ; 
      data.crc:=Absquery1.fieldbyname('crc').AsString ; 
      data.size:=Absquery1.fieldbyname('romsize').AsString ; 
      data.genre:=Absquery1.fieldbyname('genre').AsString ; 
      end; 
end; 

procedure TdsmainForm.Button1Click(Sender: TObject); 
var 
tst : string; 
begin 
vtree.Clear; 
vtree.NodeDataSize :=sizeof(Tnodedata); 
vtree.RootNodeCount:=1000; 
end; 




procedure TdsmainForm.Button2Click(Sender: TObject); 
begin 
vtree.Clear; 
end; 

procedure TdsmainForm.FormCreate(Sender: TObject); 
begin 
 vtree.Header.Columns.Clear; 
 vtree.Header.Columns.add.Text:='ROM'; 
 vtree.Header.Columns.add.Text:='Title'; 
 vtree.Header.Columns.add.Text:='Own Rom'; 
 vtree.Header.Columns.add.Text:='Own Rom'; 
 vtree.Header.Columns.add.Text:='Own Rom'; 
 vtree.Header.Columns.add.Text:='Own Rom'; 
 vtree.Header.Columns.add.Text:='Own Rom'; 
 vtree.Header.Columns.add.Text:='Own Rom'; 
 vtree.Header.Columns.add.Text:='Own Rom'; 
 romdatabase.DatabaseName := 'DS Organizer data'; 
 absroms.DatabaseName := 'DS Organizer data'; 
 absquery2.DatabaseName := 'DS Organizer data'; 
 romdatabase.DatabaseName := 'DS Organizer data'; 
 absroms.DatabaseName := 'DS Organizer data'; 
 absquery1.DatabaseName := 'DS Organizer data'; 
 RomDatabase.Connected:=true; 
end; 

end.


[Non-text portions of this message have been removed]

Reply via email to