AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Elemente einer Ini-Datei in einem TreeView darstellen

Elemente einer Ini-Datei in einem TreeView darstellen

Ein Thema von Kruemel · begonnen am 16. Okt 2002 · letzter Beitrag vom 16. Okt 2002
Antwort Antwort
Kruemel

Registriert seit: 24. Sep 2002
15 Beiträge
 
Delphi 6 Personal
 
#1

Elemente einer Ini-Datei in einem TreeView darstellen

  Alt 16. Okt 2002, 10:06
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.

MfG
Kruemel
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 16. Okt 2002, 12:51
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?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Kruemel

Registriert seit: 24. Sep 2002
15 Beiträge
 
Delphi 6 Personal
 
#3
  Alt 16. Okt 2002, 13:08
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
habe.

MfG
Sebastian
  Mit Zitat antworten Zitat
Klabautermann

Registriert seit: 22. Jun 2002
Ort: Münster (NRW)
63 Beiträge
 
#4
  Alt 16. Okt 2002, 13:18
Hallo,

diese procedure, stellt in meinem Mail Programm das Adessbuch (INI-Datei) als Baum da:

Code:
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
Ich hoffe das hilft.

Gruß
Klabautermann
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#5
  Alt 16. Okt 2002, 17:41
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz