Einzelnen Beitrag anzeigen

Nuclear-Ping
(Gast)

n/a Beiträge
 
#13

Re: EAccesViolation beim Zugriff auf ini

  Alt 3. Mär 2008, 16:12
Wenn man schon in Delphi programmiert, sollte man sich doch auch langsam von alten Pascal-Angewohnheiten verabschieden.

Statt ...
Delphi-Quellcode:
procedure load;
Var ini:TIniFile;
    fname:string;
    i,count:integer;
begin
  fname:=Unit1.sDir+'main.ini';
  form1.listbox1.clear;
  ini:=TIniFile.create(fname);
  try
     count:=ini.readinteger('main','forms',0);
     if count >0 then do
        for i:=1 to count do
           form1.listbox1.items.add(ini.readstring('main','form'+inttostr(i),''));
  finally
     ini.free;
  end;
end;
... kannst du die Funktion "Load" auch als Methode deiner "Form1" machen und hättest damit schonmal einen Schritt in Richtung OOP getan.

Delphi-Quellcode:
unit Unit1;

interface

uses ...;

type

  TForm1 = class(TForm)
    // ...
  private
    procedure Load;
    // ...
  public
    // ...
  end;

var
  // ...

implementation

{$R *.dfm}

procedure TForm1.Load;
var
  ini: TIniFile;
  FName: String;
  i, Count: Integer;
begin
  FName := Unit1.sDir + 'main.ini'; // << globale Variable *schauder* Mach dir 'ne "Config"-Klasse
  Listbox1.Clear;
  ini := TIniFile.Create(FName);
  try
    Count := ini.ReadInteger('main', 'forms', 0);
    if Count > 0 then
      for i := 1 to Count do
        Listbox1.Items.Add(ini.ReadString('main', 'form' + inttostr(i), ''));
  finally
    FreeAndNil (ini);
  end;
end;
  Mit Zitat antworten Zitat