AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Fehlende Dateien in INI nicht laden/anzeigen
Thema durchsuchen
Ansicht
Themen-Optionen

Fehlende Dateien in INI nicht laden/anzeigen

Ein Thema von SoD · begonnen am 21. Apr 2009 · letzter Beitrag vom 22. Apr 2009
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: Fehlende Dateien in INI nicht laden/anzeigen

  Alt 21. Apr 2009, 12:42
Erstell Dir doch ein Objekt mit den ensprechenden Eigenschaften und füge dieses mit ListBox.Items.AddObject in die Listbox ein.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von SoD
SoD

Registriert seit: 9. Dez 2008
Ort: Oberasbach
33 Beiträge
 
Delphi 2007 Professional
 
#12

Re: Fehlende Dateien in INI nicht laden/anzeigen

  Alt 21. Apr 2009, 12:51
Zitat von DeddyH:
Erstell Dir doch ein Objekt
Puh... wie genau mach ich sowas? Ich hab mich damit noch nie konfrontiert gesehen
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?
Keinen Bock anständig zu debuggen?
try stuff;
except ShowMessage('Bug, bug, bug!!! Dont do this shit!');
end;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: Fehlende Dateien in INI nicht laden/anzeigen

  Alt 21. Apr 2009, 12:54
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:
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.
[/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von SoD
SoD

Registriert seit: 9. Dez 2008
Ort: Oberasbach
33 Beiträge
 
Delphi 2007 Professional
 
#14

Re: Fehlende Dateien in INI nicht laden/anzeigen

  Alt 22. Apr 2009, 10:39
Zitat von DeddyH:
Delphi-Quellcode:
(...)
//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;
Ich seh den Teil eher bisschen problematisch, da die Objekte immer noch statisch per Code angegeben werden und nicht aus der INI bezogen werden. Die INI ist ja immer noch die "Datenquelle", die es ermöglichen soll, dem Programm zu sagen wo es die Dateien findet, ohne das Programm selbst modifizieren zu müssen. Bitte berichtigen wenn ich falsch liege, aber würde das nicht genannte Vorgabe komplett ignorieren?

Oder muss ich da auch mit ReadString anrücken?
Keinen Bock anständig zu debuggen?
try stuff;
except ShowMessage('Bug, bug, bug!!! Dont do this shit!');
end;
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#15

Re: Fehlende Dateien in INI nicht laden/anzeigen

  Alt 22. Apr 2009, 12:19
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.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: Fehlende Dateien in INI nicht laden/anzeigen

  Alt 22. Apr 2009, 14:10
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 01:20 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