Einzelnen Beitrag anzeigen

Benutzerbild von Xzeer
Xzeer

Registriert seit: 6. Jul 2007
106 Beiträge
 
#1

Fenster im Vordergrund halten

  Alt 3. Jan 2008, 11:44
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='upthen
  SetWindowPos(Self.Handle ,HWND_TOPMOST,0,0,0,0,SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
  if s='downthen
  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')='truethen
  Form1.Vordergrund('up');
Aber beim starten ist Form1 nicht im Vordergrund. Wo ist denn da mein Denkfehler?
Marvin
Xzeer
  Mit Zitat antworten Zitat