Zitat von
omata:
Hier mal ein kleines Beispiel...
Das ist nett von dir ..
Danke schön
Dann nochmal auch für andere ...
Normales TreeView
Delphi-Quellcode:
procedure TMainForm.ParseIniToTree(INIFileName: string; TreeView: TTreeView);
function IdOf(s: string): string;
begin
result := s;
end;
function ValOf(s: string): string;
begin
result := copy(s, pos('=', s) + 1, maxint);
end;
var INI : TIniFile; // Ini File
Section : TStringList; // Section
Value : TStringList; // Ergebnis
node : TTreeNode; // Node
IntSect : integer; // Zähler für Section
IntValue : integer; // Zähler für Ergebnis
begin
if (not FileExists(INIFileName)) then
exit;
INI := TIniFile.Create(INIFileName);
Section := TStringList.Create;
Value := TStringList.Create;
try
INI.ReadSections(Section);
for IntSect := 0 to Section.Count - 1 do
begin
node := TreeView.Items.AddChild(nil, Section[IntSect]);
INI.ReadSectionValues(Section[IntSect], Value);
for IntValue := 0 to Value.Count - 1 do
TreeView.Items.AddChildObject(node,
IdOf(Value[IntValue]),
pointer(StrToIntDef(ValOf(Value[IntValue]),
0)));
end;
finally
INI.Free;
Section.Free;
Value.Free;
end;
end;
und für VirtualTreeView
Delphi-Quellcode:
procedure TFMain.ParseIniToTree(INIFileName: string; TreeView: TVirtualStringTree);
function IdOf(s: string): string;
begin
result := s;
end;
function ValOf(s: string): string;
begin
result := copy(s, pos('=', s) + 1, maxint);
end;
var INI : TIniFile; // Ini File
Section : TStringList; // Section
Value : TStringList; // Ergebnis
Node, Parent : PVirtualNode; // Node
IntSect : integer; // Zähler für Section
IntValue : integer; // Zähler für Ergebnis
Data : PTreeData;
begin
if FileExists(INIFileName) then begin
TreeView.Clear;
INI := TIniFile.Create(INIFileName);
Section := TStringList.Create;
Value := TStringList.Create;
try
INI.ReadSections(Section);
for IntSect := 0 to Section.Count - 1 do
begin
Parent := TreeView.AddChild(nil);
Data := TreeView.GetNodeData(Parent);
Data^.Caption:=Section[IntSect];
INI.ReadSectionValues(Section[IntSect], Value);
for IntValue := 0 to Value.Count - 1 do begin
Node:=TreeView.AddChild(Parent);
Data := TreeView.GetNodeData(Node);
Data^.Caption:=IdOf(Value[IntValue]);
Data^.ValOf:=ValOf(Value[IntValue]);
end;
end;
finally
INI.Free;
Section.Free;
Value.Free;
end;
end;
end;
das wird auch anderen helfen denke ich mal
Muss jetzt nur noch schaun wie das mit Headern funktioniert dann ist es fertig
Denke hab da was auf der Seite gelesen was aber nicht funktioniert.
gruss Emil