![]() |
Elemente einer Ini-Datei in einem TreeView darstellen
Hi,
hab folgendes Prob. ich will eine Ini datei in einem Treeview darstellen und wenn man auf die Child object klickt dann die dessen Werte auslesen(das ist weniger ein problem). Hauptproblem ist aber des erste weil ich treeobject benutzen will um die pfade der ini datei beim schreiben wieder zu definieren, da die objecte im treeview namensgeblich mit denen in der Ini datei identisch sind. hoffe mir kann geholfen werden.:oops::nerd: MfG Kruemel :coder: |
Moin Kruemel,
irgendwie hab' ich jetzt nicht so ganz verstanden, was Du machen willst (=> und somit das Problem nicht ;-)). Könntest Du das bitte noch mal etwas ausführlicher schildern? |
ich will im Prinzip die ganze UT2003.ini als Treeview darstellen. die Sections als Objecte und die Idents als ChildObjecte dessen. ich wähle dann eine Section aus und dann möchte ich einen Ident auswählen und dessen Wert ändern. folgendes klappt da nicht.
1. da ich ja willkürlich im TreeView auswählen kann muss ich als beim ändern/schreiben mir die Section (Parentobject im TreeView) und dem Ident selbst (Childobject im TreeView) so zusammen bauen dass ich problemlos und richtig in die ini schreibe. das Problem ist hier ich kann die Section (Parentobject im TreeView) nicht genau aus dem TreeView auslesen(bekomme nur erstes sichtbares Parent-OBject des TreeView ausgelesen). TreeView.Selected.TreeView.TopItem.Text 2. hier ein Ini Beispiel: ... EditPackages=Core EditPackages=Engine EditPackages=Fire EditPackages=Editor EditPackages=UnrealEd EditPackages=IpDrv EditPackages=UWeb EditPackages=GamePlay EditPackages=UnrealGame EditPackages=XGame_rc EditPackages=XEffects EditPackages=XWeapons_rc EditPackages=XPickups_rc EditPackages=XPickups EditPackages=XGame EditPackages=XWeapons EditPackages=XInterface EditPackages=XAdmin EditPackages=XWebAdmin EditPackages=Vehicles ... Ich habe keine Ahnung wie das auslesen soll, weil ja nur das selectierte Ident im TreeView ausgelesen werden soll. Hoffe irgend einer Versteht was von dem was ich hier geschrieben :coder: habe. MfG Sebastian |
Hallo,
diese procedure, stellt in meinem ![]()
Code:
Ich hoffe das hilft.
procedure TdlgAdressator.LoadAdressbuch;
VAR Sections, Adresses : TstringList; SectNode, AdrNode : tTreeNode; i, j : Integer; begin TRY Sections := tStringList.Create; Adresses := tStringList.Create; Tree.Items.Clear; Config.ini_Adress.ReadSections(Sections); Sections.Sort; FOR i := 0 TO Sections.Count - 1 DO BEGIN Config.ini_Adress.ReadSection(Sections[i], Adresses); Adresses.Sort; SectNode := Tree.Items.AddChild(NIL, Sections[i]); SectNode.ImageIndex := 2; SectNode.SelectedIndex := 2; FOR j := 0 TO Adresses.Count - 1 DO BEGIN AdrNode := Tree.Items.AddChild(SectNode, Adresses[j] + ' <' + Config.ini_Adress.ReadString(Sections[i], Adresses[j], '') + '>'); AdrNode.ImageIndex := 1; AdrNode.SelectedIndex := 1; END; // Mit allen Adressen dieser Sektion END; // Mit Allen Sektionen EXCEPT ShowMessage('Fehler beim erzeugen des Adressbaums!'); END; // TRY EXCEPT Sections.Free; Adresses.Free; end; // load Adressbuch Gruß Klabautermann |
Moin Kruemel,
wenn ich mir diesen Auszug aus der INI ansehe hast Du schon mal das Problem, dass es keine INI im Windows Sinne ist. Man kann zwar Idents mit gleichem Namen innerhalb einer Section haben, allerdings wird dann auch nur der erste Wert von den entsprechenden Funktionen gefunden. Wenn Du Routinen geschrieben hast, die das berücksichtigen, ist ja schon mal viel gewonnen. Wenn Du jetzt einen Knoten im Treeview anklickst, kanns Du Dich doch einfach über die jeweilige Eigenschaft Parent "zurückhangeln" bis Parent = nil ist, denn dann bist Du ja auf der obersten Ebene angelangt. So wie ich es verstehe, hat Dein TreeView doch nur zwei Ebenen. Auf der Ersten stehen die Sections, auf der zweiten die Idents. Wenn dies nun so festliegen sollte, könntest Du z.B. über die Eigenschaft Level ermitteln, ob auf ein Ident (Level = 1) oder eine Section (Level = 0) geklickt wurde. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:10 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