Hallo,
Ich habe mir einen Einstellungsdialog gebastellt, wo der Benutzer unteranderem die Funktion wählen kann, dass das Programm immer im Vordergrund ist. Ich speicher die Einstellung in einer INI-Datei.
Delphi-Quellcode:
//Procedure in Form1
procedure TForm1.Vordergrund(s: string);
begin
if s='up' then
SetWindowPos(Self.Handle ,HWND_TOPMOST,0,0,0,0,SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
if s='down' then
SetWindowPos(Self.Handle ,HWND_NOTOPMOST,0,0,0,0,SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
end;
//Procedure in Form2
if checkbox3.Checked=true then
begin
ini02.WriteString('einstellungen','imvor','true'); //einstellung speichen
Form1.Vordergrund('up'); //einstellungs sezten
end
else
begin
ini02.WriteString('einstellungen','imvor','false'); //einstellung speichen
Form1.Vordergrund('down'); //einstellung setzten
end;
Das funktioniert auch perfekt. Jetzt möchte ich aber auch, dass das Programm nach einem erneuten starten direkt wieder im Vordergrund ist. Also habe ich im OnCreate von Form1 geschrieben:
Delphi-Quellcode:
if ini01.ReadString('einstellungen','imvor','false')='true' then
Form1.Vordergrund('up');
Aber beim starten ist Form1 nicht im Vordergrund. Wo ist denn da mein Denkfehler?