![]() |
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 |
Re: Fenster minimieren & CoolTrayIcon??
Hi,
Du musst auf die Ereignisse OnMinimizeToTray und z.B. OnDoubleClick reagieren
Delphi-Quellcode:
//edit: CoolTrayIcon.MinimizeToTray muss True sein :)
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; Gruß Stephan :dance: :xmas: |
Re: Fenster minimieren & CoolTrayIcon??
Zitat:
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. |
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. |
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 02:55 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-2025 by Thomas Breitkreuz