![]() |
Re: Fehlende Dateien in INI nicht laden/anzeigen
Erstell Dir doch ein Objekt mit den ensprechenden Eigenschaften und füge dieses mit ListBox.Items.AddObject in die Listbox ein.
|
Re: Fehlende Dateien in INI nicht laden/anzeigen
Zitat:
Verhält sich das dann auch noch wie die INI? Oder werden die Eigenschaften immer wieder überschrieben, wenn der nächste INI Eintrag nachgeschoben wird? |
Re: Fehlende Dateien in INI nicht laden/anzeigen
Das Objekt hat mit der Ini nur insofern zu tun, als dass es seine Eigenschaften in der Ini speichern bzw. aus ihr laden würde. Du erstellst Dir also eine Klasse mit den Eigenschaften Pfad, Name und Beschreibung. Wenn Du die Ini ausliest, machst Du Deine Prüfung und legst bei Erfolg eine Instanz Deiner Klasse an, befüllst die Eigenschaften und fügst sie in die Listbox ein.
[edit] Ich hatte gerade etwas Zeit und habe schnell ein Beispiel erstellt (nur ein Formular mit einer Listbox):
Delphi-Quellcode:
[/edit]
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) ListBox1: TListBox; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure ListBox1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} //Deklaration der Klasse type TMyClass = class private FName, FBeschreibung, FPfad: string; public property Name: string read FName write FName; property Beschreibung: string read FBeschreibung write FBeschreibung; property Pfad: string read FPfad write FPfad; end; //Erzeugen von 3 Objekten und Einfügen in die Listbox procedure TForm1.FormCreate(Sender: TObject); var MyClass: TMyClass; begin MyClass := TMyClass.Create; MyClass.Name := 'Bla'; MyClass.Beschreibung := 'Erstes Objekt'; MyClass.Pfad := 'C:\Windows'; ListBox1.Items.AddObject(MyClass.Name,MyClass); MyClass := TMyClass.Create; MyClass.Name := 'Blubb'; MyClass.Beschreibung := 'Zweites Objekt'; MyClass.Pfad := 'C:\Windows\System'; ListBox1.Items.AddObject(MyClass.Name,MyClass); MyClass := TMyClass.Create; MyClass.Name := 'Wuppdi'; MyClass.Beschreibung := 'Drittes Objekt'; MyClass.Pfad := 'C:\Windows\System32'; ListBox1.Items.AddObject(MyClass.Name,MyClass); end; //Freigeben der Objekte procedure TForm1.FormDestroy(Sender: TObject); var Current: integer; begin for Current := ListBox1.Items.Count - 1 downto 0 do (ListBox1.Items.Objects[Current] as TMyClass).Free; end; //Werte des angeklickten Objektes anzeigen procedure TForm1.ListBox1Click(Sender: TObject); var MyClass: TMyClass; begin if ListBox1.ItemIndex > -1 then begin MyClass := ListBox1.Items.Objects[ListBox1.ItemIndex] as TMyClass; if Assigned(MyClass) then ShowMessage(Format('%s%s%s%s%s',[MyClass.Name,sLineBreak,MyClass.Pfad, sLineBreak,MyClass.Beschreibung])); end; end; end. |
Re: Fehlende Dateien in INI nicht laden/anzeigen
Zitat:
Oder muss ich da auch mit ReadString anrücken? :gruebel: |
Re: Fehlende Dateien in INI nicht laden/anzeigen
Du musst der Klasse "TMyClass" eben noch die notwendigen Methoden spendieren, die die Daten aus einer Ini laden oder speichern.
Edit: Es ist wohl doch so gedacht, dass du deine Daten aus einer Ini ausliest, überprüfst und dann anstelle der im Beispiel gezeigten Anweisungen einer Instanz der Klasse zuweist. Dann hast du in deiner Liste nur Daten, die auch gültig sind. |
Re: Fehlende Dateien in INI nicht laden/anzeigen
Genau, mir ging es nur darum zu zeigen, wie man Objekte in TStrings ablegen kann. Ob man diese nun statisch erzeugt oder dynamisch anhand bestimmter Gegebenheiten, ist dafür ja zweitrangig.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:12 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