Wenn Du Lust hast das was Du brauchst aus einem Fetzen meines Codes zu extrahieren.....
procedure TForm1.adsAfterOpen(DataSet: TDataSet);
var
i : Integer;
begin
for i := 0 to ads.FieldCount - 1 do
begin
ads.Fields[i].DisplayWidth := 20;
end;
end;
Function GetFullPath4Node(Node:TTreenode;PathPart:String):String;
begin
if Assigned(Node) then
begin
if Node.Level=0 then Result := Node.Text +'|' + PathPart else Result := GetFullPath4Node(Node.Parent,Node.Text + '\' + PathPart);
end
else Result := '';
end;
procedure TForm1.FormCreate(Sender: TObject);
var
sl1,sl2:TStringList;
i:Integer;
pn:TTreenode;
Procedure AddChildren(Node:TTreenode;Path:String);
var
sl:TStringList;
ii:Integer;
lac:TAdoConnection;
begin
sl := TStringList.Create;
lac:=TAdoConnection.Create(self);
lac.LoginPrompt:=false;
try
lac.ConnectionString:='Provider=Microsoft.JET.OLEDB.4.0;Exchange 4.0;MAPILEVEL=' + path + ';PROFILE=Outlook;TABLETYPE=0;DATABASE=\;';
lac.open;
lac.GetTableNames(sl);
for ii := 0 to sl.count - 1 do
begin
AddChildren(tv.Items.Addchild(Node,sl[ii]),path+sl[ii]+'\');
end;
finally
lac.Free;
sl.Free;
end;
end;
begin
{
try
ac.ConnectionString:='Provider=Microsoft.JET.OLEDB.4.0;Exchange 4.0;MAPILEVEL=;PROFILE=Outlook;TABLETYPE=0;DATABASE=\;';
ac.open;
ac.GetTableNames(Postfaecher.items);
Postfaecher.ItemIndex := Postfaecher.Items.Count - 1;
PostfaecherDblClick(nil);
except end;
ac.Close;
}
sl1 :=TStringList.Create;
try
ac.ConnectionString:='Provider=Microsoft.JET.OLEDB.4.0;Exchange 4.0;MAPILEVEL=;PROFILE=Outlook;TABLETYPE=0;DATABASE=\;';
ac.open;
ac.GetTableNames(sl1);
for i := 0 to sl1.count - 1 do
begin
AddChildren(tv.Items.Add(nil,sl1[i]),sl1[i]+'|');
end;
finally
sl1.Free;
end;
tv.OnChange := tvChange;
tvChange(nil,tv.Items[0]);
end;
procedure TForm1.tvChange(Sender: TObject; Node: TTreeNode);
begin
if Assigned(Node) and (Node<>FLastNode) then
begin
FLastNode := Node;
Fdir := GetFullPath4Node(Node.Parent,'');
ac.Close;
ac.ConnectionString:='Provider=Microsoft.JET.OLEDB.4.0;Exchange 4.0;MAPILEVEL=' + Fdir+';PROFILE=Outlook;TABLETYPE=0;DATABASE=\;';
ac.open;
ads.Close;
ads.CommandText := 'Select * from [' + Node.text + ']' ;
ads.Open;
end;
end;
MfG
bummi