Zitat von
daywalker299:
Also mein Tool soll sofort nach dem Betätigen des Minimierbutton verschwinden ("form1.hide"). Wie geht das?
Falls dich das Thema auch mal interessieren sollte ohne CoolTrayIcon, dann musst du die Windows Nachrichten SC_MINIMIZE von TApplication und von deiner TForm abfangen. Das könnte dann z.B. so aussehen:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 =
class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private-Deklarationen }
procedure OnAppMessage(
var Msg: TMsg;
var Handled: Boolean);
procedure WMSysCommand(
var Message: TWMSysCommand);
message WM_SYSCOMMAND;
procedure MinimizeBtnClick;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{--------------------------------------------------------------------------------------------------}
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage := OnAppMessage;
end;
{--------------------------------------------------------------------------------------------------}
procedure TForm1.OnAppMessage(
var Msg: TMsg;
var Handled: Boolean);
begin
if (Msg.
message = WM_SYSCOMMAND)
and (Msg.wParam = SC_MINIMIZE)
then
begin
MinimizeBtnClick;
Handled := True;
end else
Handled := False;
end;
{--------------------------------------------------------------------------------------------------}
procedure TForm1.WMSysCommand(
var Message: TWMSysCommand);
begin
if (
Message.CmdType = SC_MINIMIZE)
then
MinimizeBtnClick
else
inherited;
end;
{--------------------------------------------------------------------------------------------------}
procedure TForm1.MinimizeBtnClick;
begin
ShowMessage('
Der Benutzer möchte das Fenster minimieren.');
end;
{--------------------------------------------------------------------------------------------------}
end.