Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fenster minimieren & CoolTrayIcon?? (https://www.delphipraxis.net/34466-fenster-minimieren-cooltrayicon.html)

Piro 23. Nov 2004 15:56


Fenster minimieren & CoolTrayIcon??
 
Moin ich habe mir gerade das CoolTrayIcon Tutorial durchgelesen und alles eingepflegt.

Wenn sich meine Applikation minimiert, erscheint das Icon in TNA. Ich möchte gerne, beim Eregnis von Minimieren, dass das Programm aus der Taskleiste verschwindet und nur noch das Icon in der TNA bleibt.

Ansich ist es nicht schwierig aber ich kann das Event Minimieren nicht abfangen bzw. mit ApplicationEvents wird erst ausgelöst wenn man auf das minimierte Programm klickt.

Also mein Tool soll sofort nach dem Betätigen des Minimierbutton verschwinden ("form1.hide"). Wie geht das?

Danke im Voraus?

Sven

Steve 23. Nov 2004 16:02

Re: Fenster minimieren & CoolTrayIcon??
 
Hi,

Du musst auf die Ereignisse OnMinimizeToTray und z.B. OnDoubleClick reagieren
Delphi-Quellcode:
MyCoolTrayIcon : TCoolTrayIcon;
...
procedure TForm1.CTIMinimizeToTray(Sender: TObject);
//TCoolTrayIcon.OnMinimizeToTray - Eventhandler
begin
  MyCoolTrayIcon.HideMainForm;
end;

procedure TForm1.CTIDblClick(Sender: TObject);
//TCoolTrayIcon.OnDoubleClick - Eventhandler
//Event, durch das die MainForm wieder angezeigt wird
begin
  MyCoolTrayIcon.ShowMainForm;
end;
//edit: CoolTrayIcon.MinimizeToTray muss True sein :)

Gruß
Stephan :dance: :xmas:

Sprint 23. Nov 2004 16:12

Re: Fenster minimieren & CoolTrayIcon??
 
Zitat:

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.

Piro 23. Nov 2004 16:26

Re: Fenster minimieren & CoolTrayIcon??
 
Danke so hatte ich das auch berst aber es ging nicht.

Jetzt funktioniert es. Der Grund war, dass ich die CoolIcon Komponente in ein Datamodule gepackt hatte. Jetzt liegt so auf der Hauptform und es funzt.

Dabke nochmal für eure Antworent.

Aike 21. Mai 2005 05:14

Re: Fenster minimieren & CoolTrayIcon??
 
Endlich mal Code, der auf Anhieb funktioniert! :-)
Aber jetzt minimiert er nicht mehr, wenn ich auf minimieren drücke. Wie geht's denn da weiter?


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz