Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   2 Formulare, 1 IniFile ~> Fehler (https://www.delphipraxis.net/37083-2-formulare-1-inifile-%7E-fehler.html)

thepaul 30. Dez 2004 18:41


2 Formulare, 1 IniFile ~> Fehler
 
Hi,

ich habe 2 Formulare. Form2 wird von Form1 aufgerufen. Ich möchte in beiden in die gleiche Ini-Datei schreiben.
Wenn ich nur Form1 benutze und wieder Schleiße wird alles richtig gespeichert. Wenn ich aber Form2 öffne und schleiße (also in die Ini schreiben will) kommt ein Fehler, dass in den Ordner ... nicht geschrieben werden konnte.

Woran liegt das?

Danke für die Antworten!

mfg Paul

Elite 30. Dez 2004 19:02

Re: 2 Formulare, 1 IniFile ~> Fehler
 
Wenig Infos, aber versuchen kann mans ...
Falls zu 2 verschiende Ini-Variablen haben solltest: nehm einfach nur eine und deklarier diese global.

TKay 31. Dez 2004 15:40

Re: 2 Formulare, 1 IniFile ~> Fehler
 
Ich habe da eine kleine Frage: Wie sieht denn der Code aus, um ein anderes Formular aufzurufen? (Ich weiß, ist eine blöde Frage, aber es ist schon zu lange her, seit ich es mal gemacht habe. Bin Laie... :tongue: )

SirThornberry 31. Dez 2004 15:58

Re: 2 Formulare, 1 IniFile ~> Fehler
 
Zitat:

Zitat von Elite
Wenig Infos, aber versuchen kann mans ...
Falls zu 2 verschiende Ini-Variablen haben solltest: nehm einfach nur eine und deklarier diese global.

*grummel* Anstelle von Global empfiehlt es sich einfach das IniFile-Object im Public zu declarieren oder per Funktion etc. an das zweite Form zu übergeben.

Wenn durch das zweite Form auf die Ini-Datei zugegriffen wird darf diese nicht schon geöffnet sein (durch Form1). Also schließe einfach die Ini-Datei im Form1 dann kannst du diese in Form2 auch wieder aufrufen, oder wie oben schon geschrieben - einfach das IniFile-Object aus Form1 nutzen

thepaul 2. Jan 2005 16:27

Re: 2 Formulare, 1 IniFile ~> Fehler
 
Erstmal Danke!

Ich hab das mit euren Tips versucht, es funzt aber immer noch nicht.

Ich hab auch mal versucht alles in einer anderen ini zu speichern, es kommt aber der gleiche Fehler.

:wall: :wall:

fkerber 2. Jan 2005 16:33

Re: 2 Formulare, 1 IniFile ~> Fehler
 
Hi!

Zeig am besten mal deinen Code her...


Ciao Frederic

thepaul 2. Jan 2005 16:46

Re: 2 Formulare, 1 IniFile ~> Fehler
 
Formular 1:
Delphi-Quellcode:
unit scr_main;

interface

uses
  ..., inifiles, ...

...

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    ini: tinifile;
  end;

var
  frmMain: TfrmMain;

implementation

uses src_Options, src_Info;

{$R *.dfm}

...

procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);

begin
  ini:= TINIFile.Create(ExtractFilePath(ParamStr(0))+'settings.ini');

  try //schreiben der Einstellungen
    ini.WriteBool('output','checkb',checkbox1.Checked);
    ini.WriteBool('output','options',gbxoptionsoutput.Visible);

    ini.WriteInteger('Position','Top',frmMain.Top);
    ini.WriteInteger('Position','Left',frmMain.Left);
  finally
    ini.UpdateFile;
    ini.Free;
  end;
end;

procedure TfrmMain.FormCreate(Sender: TObject);
begin
  ini:= tinifile.Create(ExtractFilePath(ParamStr(0))+'settings.ini');

  try  //Einlesen von settings.ini
    checkbox1.Checked:=ini.ReadBool('output','checkb',false);
    gbxoptionsoutput.Visible:=ini.ReadBool('output','options',true);

    frmMain.Left:=ini.ReadInteger('Position','Left', 100);
    frmMain.Top:=ini.ReadInteger('Position','Top',100);
  finally
    ini.Free;
  end;
...

end;

...

procedure TfrmMain.Optionen2Click(Sender: TObject);
begin
  frmOptions.ShowModal;
end;

end.
Formular 2:
Delphi-Quellcode:
unit src_Options;

interface

uses
  ..., inifiles;

...

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    ini:tinifile;
  end;

...

procedure TfrmOptions.BitBtn1Click(Sender: TObject);

begin
  ini:=tinifile.Create(ExtractFilePath(ParamStr(0)+'settings.ini'));

  try
    ini.WriteBool('options','rdb1',rdb1.Checked);
    ini.WriteBool('options','rdb2',rdb2.Checked);
    ini.WriteBool('options','´cbxvisible',combobox1.Visible);
    ini.WriteInteger('options','Index',combobox1.ItemIndex);
  finally
    ini.UpdateFile;
    ini.Free;
    frmoptions.Close;
  end;
end;

...

procedure TfrmOptions.FormCreate(Sender: TObject);

begin
  bitbtn1.default:=True;

  ini:=TINIfile.Create(ExtractFilePath(ParamStr(0)+'settings.ini'));

  try
    rdb1.Checked:=ini.ReadBool('options','rdb1',false);
    rdb2.Checked:=ini.ReadBool('options','rdb2', True);

    combobox1.Visible:=ini.ReadBool('options','cbxvisible',True);
    combobox1.ItemIndex:=ini.ReadInteger('options','Index',0);
  finally
    ini.UpdateFile;
    ini.Free;
  end;
end;

end.

Wuaegner 2. Jan 2005 16:52

Re: 2 Formulare, 1 IniFile ~> Fehler
 
Zitat:

Ich möchte in beiden in die gleiche Ini-Datei schreiben
Wieso dann einmal
Code:
settings.ini'
in Form1
und
Code:
settingso.ini'
in Form2 ?

thepaul 2. Jan 2005 16:58

Re: 2 Formulare, 1 IniFile ~> Fehler
 
Zitat:

Wieso dann einmal
Code:
settings.ini'
in Form1
und
Code:
settingso.ini'
in Form2 ?
:oops: :oops: das is noch von meinem Versuch in unterschiedliche inis zu schreiben!

~> wird geändert!
~> edit: ist geändert ;)

Wuaegner 2. Jan 2005 16:59

Re: 2 Formulare, 1 IniFile ~> Fehler
 
Ok gut.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:33 Uhr.
Seite 1 von 2  1 2      

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