Hallo Daniel B,
ich habe die Ini-Datei noch mal gelöscht, Programm neu gestartet -> keine Fehler erzielbar.
Allerdings ist mir aufgefallen, daß dieser Teil in TMainFormMC2004.FormClose überflüssig ist:
Delphi-Quellcode:
//.....
end
else //if FensterPosSave = False then
begin
ini.WriteInteger('Fensterdaten', 'Links', 0);
ini.WriteInteger('Fensterdaten', 'Oben', 0);
ini.WriteInteger('Fensterdaten', 'Breite', 641);
ini.WriteInteger('Fensterdaten', 'Hoehe', 375);
end;
weil in TMainFormMC2004.FormCreate immer der else-Zweig abgearbeitet wird, wenn FensterPosSave false gilt:
Delphi-Quellcode:
FensterPosSave :=
ini.ReadBool('Fensterdaten', 'Fensterposition', false);
if FensterPosSave then begin
// MainFormMC2004.Left := ini.ReadInteger('Fenst....
// .... ('Fensterdaten', 'Hoehe', 0);
end
else begin // if FensterPosSave = False then begin
MainFormMC2004.Position := poScreenCenter;
end;
Du hast ja schon geschrieben, daß Du auf if-else-Konstruktionen stehst, aber vielleicht solltest Du Dir selbst das Leben erleichtern und so etwas:
Delphi-Quellcode:
if Geoeffnete = True then
begin
CheckBox1.Checked := True;
end
else if Geoeffnete = False then
begin
CheckBox1.Checked := False;
end;
doch besser so schreiben:
CheckBox1.Checked := Geoeffnete;
Ist doch irgendwie übersichtlicher und leichter verständlich.
Und wenn ich schon dabei bin, aus:
Delphi-Quellcode:
if s = '2400' then
begin
ComboBoxBaud.ItemIndex := 0;
end
else if s = '4800' then
begin
ComboBoxBaud.ItemIndex := 1;
end
else if s = '9600' then
begin
ComboBoxBaud.ItemIndex := 2;
end
else if s = '14400' then
begin
ComboBoxBaud.ItemIndex := 3;
end
else if s = '19200' then
begin
ComboBoxBaud.ItemIndex := 4;
end
else if s = '28800' then
begin
ComboBoxBaud.ItemIndex := 5;
end
else if s = '38400' then
begin
ComboBoxBaud.ItemIndex := 6;
end;
hätte ich folgendes gemacht:
Delphi-Quellcode:
const
maxB = 7;
Bauds : array[0..maxB] of string =
('1200','2400','9600','14400','19200','28800','38400','55600');
//.....
ComboBoxBaud.ItemIndex := NofStr(s, Bauds);
//....
Endlich mal eine sinnvolle Anwendung für diese Funktion, die ich aus einer Zeitung habe:
Delphi-Quellcode:
{liefert 0 ... n zurück, wenn s in sarr gefunden wurde, -1, wenn nicht}
function NofStr( s : string; sarr : array of string) : integer;
var
erg, i : integer;
begin
erg := -1;
s := uppercase(s);
for i := 0 to high(sarr) do begin
if s = uppercase(sarr[i]) then begin
erg := i;
break;
end;
end;
Result := erg;
end;
Wahrscheinlich wäre ich noch einen Schritt weiter gegangen und hätte statt String-Werte für die Baudrate Integer in meinem Array verwendet.
Vorsichtshalber:
Das soll kein Mäkeln an Deinem Programm sein, sondern nur ein Hinweis zum Reduzieren von Aufwand.
mfg
eddy