AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Fenster beim minimieren in den Taskbar und zurück
Thema durchsuchen
Ansicht
Themen-Optionen

Fenster beim minimieren in den Taskbar und zurück

Ein Thema von VizeTE · begonnen am 22. Mär 2006 · letzter Beitrag vom 24. Mär 2006
 
VizeTE

Registriert seit: 31. Dez 2002
178 Beiträge
 
Delphi 5 Enterprise
 
#8

Re: Fenster beim minimieren in den Taskbar und zurück

  Alt 24. Mär 2006, 18:10
Hallo,

ich habe da jetzt schon mal selbst eine Lösung gefunden. Die gefällt mir zwar nicht so richtig gut aber funktioniert. Wenn jemand eine bessere Idee hat würde ich mich freuen

Mein jetztiges Prinzip basiert auf 2 Formularen. Wenn das eingentliche Formular minimiert wird so wird dieses komplett ausgeblendet. Somit ist dies schonmal nicht mehr sichtbar. Diese erzeugt dann ein zweites Formular was nur einen Taskbar-Eintrag erzeugt, selbst aber auch nicht zu sehen ist.
Wenn man dann auf den Taskbar-Eintrag klickt wird dieses Fenster zerstört. Vorher wird aber das eigentliche Formular sichtbar gemacht.

TTaskbarForm ist das eigentliche Formular.
TTaskbarForm2 ist das Formular, was nur im Taskbar sichtbar ist.

Und hier jetzt der Code:

Delphi-Quellcode:
type
  TTaskbarForm = class(TForm)
  private
    FTaskbarWindow: TTaskbarForm2;
  protected
    procedure WMSysCommand(var Message: TMessage); message WM_SysCommand;
  public
    { Public-Deklarationen } 
  end;

function ShowTaskbarForm: TModalResult;

implementation

{$R *.dfm} 

function ShowTaskbarForm: TModalResult;
var
  ATaskbarForm : TTaskbarForm;
begin
  Application.CreateForm(TTaskbarForm, ATaskbarForm);
  try
    Result := ATaskbarForm.ShowModal;
  finally
    ATaskbarForm.Release;
  end;
end;

{ TTaskbarForm } 

procedure TTaskbarForm.WMSysCommand(var Message: TMessage);
begin
  case Message.WParam of
    SC_MINIMIZE : begin
                    FTaskbarWindow := TTaskbarForm2.Create(Self);
                    FTaskbarWindow.ParentHandle := Self.Handle;
                    FTaskbarWindow.Show;
                    Self.Visible := true;
                    Self.Hide;
                  end;
    SC_RESTORE : begin
                    FTaskbarWindow := nil;
                    Self.Show;
                    Self.Visible := true;
                    Self.Enabled := true;
                  end;
  else
    inherited;
  end;
end;
Delphi-Quellcode:
type
  TTaskbarForm2 = class(TForm)
    Button1: TButton;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
  private
    FParantHandle : THandle;
  protected
    procedure CreateParams(var Params: TCreateParams); override;
    procedure WMSysCommand(var Message: TMessage); message WM_SysCommand;
  public
    property ParentHandle: THandle write FParantHandle;
  end;

implementation

{$R *.dfm} 

procedure TTaskbarForm2.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
end;

procedure TTaskbarForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  ShowWindow(FParantHandle, SW_RESTORE);
end;

procedure TTaskbarForm2.FormShow(Sender: TObject);
begin
  ShowWindow(Self.Handle, SW_MINIMIZE);
  Abort;
end;

procedure TTaskbarForm2.WMSysCommand(var Message: TMessage);
begin
  case Message.WParam of
    SC_MAXIMIZE,
    SC_RESTORE : Self.Close;
  else
    inherited;
  end;
end;
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz