Einzelnen Beitrag anzeigen

Codix32

Registriert seit: 23. Apr 2009
137 Beiträge
 
Delphi 2005 Personal
 
#43

AW: Ini Datei wird nicht erstellt...

  Alt 21. Feb 2014, 16:26
Sir Rufo,

das Lesen der Ini geht, wenn ich den Code direkt in die OnClick Ereignis Prozedur des Buttons schreibe.
Es könnte also wohl an dem String Parameter der 'leseIni(IniName:string)' liegen.

Das hier geht:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
  var
   ini:TIniFile;
   filename: String;
   ininame:String;
begin
   ininame:='MyKredInif';
   filename := extractfilepath(paramstr(0))+IniName+ '.ini';//'MyKredInif.ini';
   //filename:=GetSpecialFolder(CSIDL_APPDATA)+'\'+Ininame+ '.ini';
   Label1.Caption:=filename;
   ini := TIniFile.Create(filename);
 try
   Form1.Caption:=ini.ReadString('Sektion1', 'Name','');
   Gesamtkreditsum:=ini.ReadString('Sektion2', 'Gesamtkreditsumme',' ');
   Ratenhöhe:=ini.ReadString('Sektion2', 'Ratenhoehe', '');
   Ratenanzhl:=ini.ReadString('Sektion2', 'Ratenanzahl', '');
   Restsum:=ini.ReadString('Sektion3', 'Restsumme', '');
   Sonderrat:=ini.ReadString('Sektion3', 'Sonderrate','');
 finally
   ini.Free;
  // Variable ini wieder freigeben
end;
// leseIni('MyKreditInif');
   Label2.Caption:=Gesamtkreditsum;
end;
Das hier geht nicht:
Delphi-Quellcode:
Type
  TForm1 = class(TForm)
...
  public
    { Public-Deklarationen }
     procedure leseIni(IniName:string);
  end;

....
....

procedure TForm1.leseIni(IniName:string);
var
  ini:TIniFile;
  filename: String;
begin
 filename := extractfilepath(paramstr(0))+IniName+ '.ini';
 //filename:=GetSpecialFolder(CSIDL_APPDATA)+'\'+Ininame+ '.ini';
 Label1.Caption:=filename;
 ini := TIniFile.Create(filename);
 try
   Form1.Caption:=ini.ReadString('Sektion1', 'Name','');
   Gesamtkreditsum:=ini.ReadString('Sektion2', 'Gesamtkreditsumme',' ');
   Ratenhöhe:=ini.ReadString('Sektion2', 'Ratenhoehe', '');
   Ratenanzhl:=ini.ReadString('Sektion2', 'Ratenanzahl', '');
   Restsum:=ini.ReadString('Sektion3', 'Restsumme', '');
   Sonderrat:=ini.ReadString('Sektion3', 'Sonderrate','');
 finally
   ini.Free;
 end;
end;

procedure TForm1.Button1Click(Sender: TObject)
begin
...
   leseIni('MyKreditInif');
   Label2.Caption:=Gesamtkreditsum;
end;
Merkwürdiges Verhalten. Übrigens funktioniert die 'LeseIni(ininame:string)' auch auf Windows XP nicht.

Geändert von Codix32 (21. Feb 2014 um 16:30 Uhr)
  Mit Zitat antworten Zitat