unit IniDemo;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IniFiles;
type
TForm1 =
class(TForm)
cbbOption: TComboBox;
edt1: TEdit;
edt2: TEdit;
edt3: TEdit;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure cbbOptionChange(Sender: TObject);
procedure cbbOptionSelect(Sender: TObject);
procedure edt1Change(Sender: TObject);
private
{ Private-Deklarationen }
TheIni: TMemIniFile;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var i: Integer;
begin
//Ich bin gerade zu faul, daher ins Programmverzeichnis
//(soll man aber eigentlich nicht tun)
TheIni := TMemIniFile.Create(ChangeFileExt(ParamStr(0),'
.ini'));
for i := 0
to Pred(ComponentCount)
do
if Components[i]
is TEdit
then
TEdit(Components[i]).Text := TheIni.ReadString(cbbOption.Items[cbbOption.ItemIndex],
TEdit(Components[i]).
Name,
'
Noch nix drin');
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
//Änderungen auf HD schreiben
TheIni.UpdateFile;
TheIni.Free;
end;
procedure TForm1.cbbOptionChange(Sender: TObject);
begin
//da nicht klar ist, welches Ereignis ausgelöst wird (vom Style der ComboBox
//abhängig), einfach in beiden Ereignissen deklarieren
cbbOptionSelect(Sender);
end;
procedure TForm1.cbbOptionSelect(Sender: TObject);
var i: Integer;
begin
//Ini-Einträge zum gewählten Eintrag auslesen und anzeigen
for i := 0
to Pred(ComponentCount)
do
if Components[i]
is TEdit
then
TEdit(Components[i]).Text := TheIni.ReadString(cbbOption.Items[cbbOption.ItemIndex],
TEdit(Components[i]).
Name,
'
Noch nix drin');
end;
procedure TForm1.edt1Change(Sender: TObject);
begin
//Änderungen in der Ini festhalten
TheIni.WriteString(cbbOption.Items[cbbOption.ItemIndex],
TEdit(Sender).
Name,
TEdit(Sender).Text);
end;
end.