![]() |
Minimierungsprobleme
(Sorry, mir ist kein titel eingefallen, der mein problem besser beschreiben könnte)
Mein Programm besteht aus mehreren Forms, die alle unabhängig von einander minimiert werden können und die außerdem einen eigenen taskbar eintragen haben. Außerdem verwendet mein programm ein tray icon. Mein Ziel ist es, dass sobald mindestens ein form minimiert ist, ein tray icon angezeigt werden soll. Wenn keine form minimiert ist, soll das tray icon wieder verschwinden. Für alle forms soll ein und das selbe tray icon benutzt werden. Ich benutze Jvcl und das dazugehörende Tray Icon. Ich könnte aber eventl auf das cooltray icon umsteigen, wenn das besser ist. Und meine frage ist es jetzt, wie ich das erreichen kann. Ich weiß bereits, wie man die verschiedenen forms dazu bringt, einen eigenen taskbar eintrag anzugeigen UND nicht mit dem hauptform minimiert zu werden:
Delphi-Quellcode:
Mein problem ist halt, dass ich die anderen forms nicht in das selbe tray icon zwingen kann, bzw. einfach den taskbar eintrag ausblenden kann.
procedure TChannels.CreateParams(var Params: TCreateParams);
begin inherited; Params.ExStyle:=Params.ExStyle or WS_EX_APPWINDOW; Params.WndParent:=GetDesktopWindow; end; Ich hoffe, dass ich mich einigermaßen verständlich ausgedrückt habe :wall: |
Re: Minimierungsprobleme
Das sollte doch nicht so schwer sein:
- Du legst dir ne Public-Variable(Integer) in der MainForm an oder du bastelst dir gleich ne Klasse dafür - Bei OnMinimize wird diese Variable erhöht - Bei OnRestore(heißt das so? :gruebel: ) verringert - Wenn die Variable > 0 Icon zeigen else Icon verstecken - In deinem Fall würde ich auf die JVCL-Komponente verzichten, da die ja automatisch beim Minimieren das Icon anzeigt(oder?); das dürfte auch bei den anderen Komponenten so sein. - Such dir also n paar Codeschnipsel, wie man das Icon selbst erzeugt(das findet sich sehr schnell, einfach suchen) - Wenn du das richtig machen willst steck das in die anfangs erwähnte Klasse und mach dir ne eigene Komponente draus mfg Christian |
Re: Minimierungsprobleme
Das mit dem tray icon ist jetzt mal zunächst nicht soo wichtig. Mein hauptanliegen ist es, dass ich das "haupt form" minimieren kann, OHNE dass die anderen forms auch minmiert werden.
Wie mach ich das? |
Re: Minimierungsprobleme
Zitat:
Zitat:
|
Re: Minimierungsprobleme
Sorry, ich bin grade irgendwie nicht ganz beieinander, zuviel :roteyes:
Hast recht, das mit dem hauptform hab ich schon raus. Tatsächlich möchte ich wissen, wie ich in einem form das minimize event abfangen kann und das form dann quasi inkl. taskbar eintrag verstecken kann. Weil mit applicationevents geht das ja nur programmweit. Ob ich jetzt auch das geschrieben hab was ich auch meine? :gruebel: |
Re: Minimierungsprobleme
![]()
Delphi-Quellcode:
unit Unit1;
interface uses Windows, ... ; type TFormX = class(TForm) procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND; ... implementation ... procedure TFormX.WMSysCommand(var Msg: TWMSysCommand); begin case (Msg.CmdType and $FFF0) of SC_MINIMIZE: begin TrayIcon.Active := True; // Trayicon Anzeigen FormX.Hide; // Form verstecken end; // SC_RESTORE : ; // SC_MAXIMIZE: ; // SC_CLOSE: ; else inherited; end; end; |
Re: Minimierungsprobleme
Hm...ich krieg da bei dem .hide eine zugriffsverletzung :gruebel:
|
Re: Minimierungsprobleme
Fehler ? Wo, Was ? Sourcecode bitte.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:18 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