Einzelnen Beitrag anzeigen

Benutzerbild von Alien426
Alien426

Registriert seit: 21. Dez 2005
146 Beiträge
 
Turbo Delphi für Win32
 
#1

Ist Programm minimiert / in der Taskleiste?

  Alt 4. Jun 2006, 09:00
Die Frage hört sich etwas simpel an. Ich möchte herausfinden, ob mein Programm minimiert ist. Wenn es das beim Beenden ist, möchte ich das in einer INI speichern und beim nächsten Mal minimiert starten. Bei folgendem Code wird nie angezeigt, wenn ich auf die "Minimieren"-Schaltfläche in der Titelleiste klicke:

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var
  State: String;
begin
  case Form1.WindowState of
    wsMinimized: State := '*** minimized ***';
    wsNormal: State := 'normal';
    wsMaximized: State := 'maximized';
    else
      State := '*** dunno ***';
  end;
  if IsIconic(Form1.Handle) then
    State := State + ', *** is iconic ***'
  else
    State := State + ', not iconic';
  if IsZoomed(Form1.Handle) then
    State := State + ', is zoomed'
  else
    State := State + ', not zoomed';
  ListBox1.Items.Add(State);
  ListBox1.ItemIndex := ListBox1.Items.Count - 1;
end;
Ein maximierter Zustand wird angezeigt. Den minimierten Zustand bekomme ich erst, wenn ich einen Button mit der folgenden Funktion versehe:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
  WindowState := wsMinimized;
end;
Dann allerdings ist das Fenster nicht in der Taskleiste, sondern auf Titelleisten-Größe geschrumpft über der Taskleiste.

Muss ich jetzt auf die Messages, die den Zustand des Fensters verändern reagieren und eine eigene Variable dafür verwenden?
  Mit Zitat antworten Zitat