![]() |
Virtual TreeView mit INI füllen
Hallo
Das Schnipsel von mir befüllt ein normales TreeView mit daten die aus einer INI Datei gelesen werden. Man hat mir geraten auf das Virtual TreeView umzusteigen damit kenne ich mich aber nicht so gut aus. Jemand eine Lösung wie oder welche Funktion ich da verwenden muss ?
Delphi-Quellcode:
AddChildObject gibt es nicht beim TVirtualStringTree ..
procedure TMainForm.ParseIniToTree(INIFileName: string; TreeView: TVirtualStringTree);
// ... schnipp end; gruss EMil |
Re: Virtual TreeView mit INI füllen
Hi,
darf man erfahren, warum Du auf das VST umsteigen willst / sollst? Ich würde es beim TreeView belassen, wenn Du damit alle Deine Anforderungen abdecken kannst. Ansonsten gibt es für das VST ![]() |
Re: Virtual TreeView mit INI füllen
Zitat:
aber wegen diesen Thread .. da hat man es mir geraten. ![]() Nettes .. ja aber nur net denn es funktioniert nicht. das hilft mir nicht weiter. gruss Emil |
Re: Virtual TreeView mit INI füllen
Zitat:
|
Re: Virtual TreeView mit INI füllen
Liste der Anhänge anzeigen (Anzahl: 1)
Hier mal ein kleines Beispiel...
|
Re: Virtual TreeView mit INI füllen
Zitat:
Danke schön Dann nochmal auch für andere ... Normales TreeView
Delphi-Quellcode:
und für VirtualTreeView
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;
Delphi-Quellcode:
das wird auch anderen helfen denke ich mal
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; 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 |
Re: Virtual TreeView mit INI füllen
Liste der Anhänge anzeigen (Anzahl: 1)
Hier noch ein Beispiel, das mit dem normalen TreeView nicht möglich ist...
|
Re: Virtual TreeView mit INI füllen
Zitat:
Du meinst das mit den Button rechts wo man den header verschieben kann ? gruss Emil |
Re: Virtual TreeView mit INI füllen
Lade doch mal eine INI-Datei, dann kannst du sehen was ich meine...
|
Re: Virtual TreeView mit INI füllen
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Links wird der Name incl. der Value angezeigt und rechts die Value Entweder wird da was doppelt addiert oder das ist es was du meinst. Hab mal ein pic angehängt gruss Emil |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz