Einzelnen Beitrag anzeigen

Berni68

Registriert seit: 9. Jan 2006
Ort: Villingen
162 Beiträge
 
Delphi XE5 Professional
 
#1

Minimieren geht nicht mehr

  Alt 24. Feb 2007, 17:57
Salü zusammen.

Hab nur ich ein Problem mit fogendem Programm, oder gibt es da ein prinzipielles Problem?
1. Programm starten und minimieren.
2. Programm nochmals starten. Wie erwartet wird die erste Instanz aktiviert.
Nur, jetzt läßt sich das Ding nicht mehr minimieren.

Delphi-Quellcode:
unit Unit1;
interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
  TForm1 = class(TForm)
  private
  public
  end;
var
  Form1: TForm1;
  Handle: THandle;
implementation
{$R *.DFM}

initialization
begin
  Handle:= CreateMutex(nil, true, 'Form1');
  if GetLastError=ERROR_ALREADY_EXISTS then Halt;
end;
finalization
begin
  if Handle<>0 then CloseHandle(Handle);
  Handle:= FindWindowEx(0, 0, 'TForm1', nil);
  If Handle<>0 then begin
    if IsIconic(Handle)=true then showmessage('IsIconic'); // funktioniert NICHT
    if IsZoomed(Handle)=true then showmessage('IsZoomed'); // funktioniert, wird allerdings auch bei minimiertem Fenster angezeigt
    if IsWindowVisible(Handle)=false
      then SendMessage(Handle, WM_SYSCOMMAND, SC_RESTORE, Handle)
      else SendMessage(Handle, WM_SYSCOMMAND, SC_DEFAULT, Handle);
// ShowWindow(Handle, SW_SHOWMAXIMIZED); // gleiches Ergebnis minimieren nicht mehr möglich, wenns minimiert war.
    SetForegroundWindow(Handle);
  end;
end;
end.
Bernhard
  Mit Zitat antworten Zitat