Einzelnen Beitrag anzeigen

Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#1

[VirtualTreeview]Items hinzufügen

  Alt 1. Jun 2006, 16:19
Hi,

Ich wollte grade wie in diesem Tutorial beschrieben Items in eine VST einfügen http://www.dsdt.info/tutorials/virtualtreeview/ leider kommt dabei eine Zugriffs verletzung

Was mache ich nur falsch ?

Delphi-Quellcode:
type
  TAI_TreeKind = (tkdic);

type
  PAI_TreeItem = ^TAI_TreeItem;
  TAI_TreeItem =record // meine daten
    kind: TAI_TreeKind;
    path: string[255];
    self: string[255];
  end;


// hier werden die items erstellt, bzw sollen erstellt werden
procedure TFEditorMain.TreeFilesExpanding(Sender: TBaseVirtualTree;
  Node: PVirtualNode; var Allowed: Boolean);
var
  slist: tstringlist;
  i: integer;
  rp: TAI_TreeItem;
begin
  if node = htdocs then begin
    TreeFiles.DeleteChildren(node);
    slist:= tstringlist.Create;
    slist:=Lister.listdirs(fhtdocs);
    TreeFiles.BeginUpdate;
    for i:=0 to slist.Count-1 do begin
      rp.path:= lister.path+slist[i];
      rp.self:= slist[i];
      TreeFiles.NodeDataSize:=SizeOf(TAI_TreeItem);
      AddVSTStructure(TreeFiles, node, rp);
    end;
    TreeFiles.EndUpdate;
  end;
end;

// diese function ist aus dem tutorial
function TFEditorMain.AddVSTStructure(AVST: TCustomVirtualStringTree;
  ANode: PVirtualNode; ARecord: TAI_TreeItem): PVirtualNode;
var
  Data: PAI_TreeItem;
begin
  Result:=AVST.AddChild(ANode);
  Data:=AVST.GetNodeData(Result);
  Avst.ValidateNode(Result, False);
  Data^.kind:=ARecord.kind;
  Data^.path:=ARecord.path;
  Data^.self:=ARecord.self;
end;

// Die Zugriffs verletzung kommt schon beim Expandieren
thx, arbu
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat