![]() |
Systray Komponente - 8 Fehler
Hi, ich versuche grade Luckie's TNA Code in eine Komponente zu packen, leider treten da eine
Menge Fehler auf die ich partout nicht wegbekomme :/ Hier mal der QT:
Delphi-Quellcode:
Jetzt werden vom Compiler folgende Meldungen angezeigt:
[...]
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, menus, ShellAPI; type TSystray = class(TComponent) private { Private-Deklarationen } IconData: TNotifyIconData; FTray_on_minimize: boolean; FTray_on_close: boolean; FPopupmenu: TPopupmenu; procedure WndProc(var Msg: TMessage); override; procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND; procedure Set_Tray_on_minimize(Value: boolean); procedure Set_Tray_on_close(Value: boolean); protected { Protected-Deklarationen } public { Public-Deklarationen } published { Published-Deklarationen } property Tray_on_minimize: boolean read FTray_on_minimize write FTray_on_minimize; property Tray_on_close: boolean read FTray_on_close write FTray_on_close; property Popupmenu: TPopupmenu read FPopupmenu write FPopupmenu; end; procedure Register; implementation [...] procedure TSystray.WndProc(var Msg: TMessage); var Point: TPoint; begin if Msg.Msg = WM_USER + 20 then begin case Msg.lParam of WM_RBUTTONDOWN: begin SetForegroundWindow(Handle); GetCursorPos(Point); FPopUpMenu.PopUp(Point.X, Point.Y); end; WM_LBUTTONDOWN: begin //ShowMessage('links runter'); end; WM_LBUTTONDBLCLK: begin Form1.Show; // Icon nur anzeigen wenn Fenster minimiert Shell_NotifyIcon(NIM_DELETE, @IconData); end; end; end; inherited; end; procedure TSystray.Set_Tray_on_minimize(Value: boolean); begin if Value <> FTray_on_minimize then FTray_on_minimize := Value; end; procedure TSystray.Set_Tray_on_close(Value: boolean); begin if Value <> FTray_on_close then FTray_on_close := Value; end;
Code:
Dass er Form1 nicht kennt, kapier ich, aber wie ich das mit dem WNDPROC hinbekomme weiß ich nicht!
[Fehler] Systray.pas(39): Methode 'WndProc' nicht in Basisklasse gefunden
[Fehler] Systray.pas(67): Undefinierter Bezeichner: 'Handle' [Fehler] Systray.pas(77): Undefinierter Bezeichner: 'Form1' [Fehler] Systray.pas(79): Undefinierter Bezeichner: 'Shell_NotifyIcon' [Fehler] Systray.pas(79): Undefinierter Bezeichner: 'NIM_DELETE' [Hinweis] Systray.pas(31): Das private Symbol 'Set_Tray_on_minimize' wurde deklariert, aber nie verwendet [Hinweis] Systray.pas(32): Das private Symbol 'Set_Tray_on_close' wurde deklariert, aber nie verwendet [Fehler] Systray.pas(40): Ungenügende Forward- oder External-Deklaration: 'TSystray.WMSysCommand' [Fataler Fehler] dclusr50.dpk(33): Verwendete Unit '\\S-INF-01\VOL4\SCHUELER\JFREIKNE\Systray Komponente\Systray.pas' kann nicht compiliert werden Hat eine Komponente immer einen Besitzer, dem ich dann die neue WndProc zuweisen kann? Hoffe ihr könnt mir helfen!! :cry: |
Re: Systray Komponente - 8 Fehler
Hi,
1) Nimm das override hinter der WndProc weg, das dürfte helfen 2) Versuche Self.Handle (deine Komponente muss ja irgendwo ein Handle haben) 3) Für 'Shell_NotifyIcon' und 'NIM_DELETE' musst du glaube ich ShlObj in die Uses einfügen (ich glaube die heißt so) Ich hoffe das hilft erstmal, MFg Alex |
Re: Systray Komponente - 8 Fehler
achso:
deine property müssen so heißen:
Delphi-Quellcode:
MFG Alex
property Tray_on_minimize: boolean read FTray_on_minimize write SET_Tray_on_minimize;
property Tray_on_close: boolean read FTray_on_close write SET_Tray_on_close; |
Re: Systray Komponente - 8 Fehler
und die procedure musst du auch noch Implementieren:
procedure TSystray.WMSysCommand(var Message: TWMSysCommand); begin //MACH IRGENDWAS end; |
Re: Systray Komponente - 8 Fehler
Danke, das mit dem override funktioniert schonmal!
Und danke für's Fehlersuchen ;) Das mit dem Handle funzt leider noch nicht, ich gebe self an und er schlägt mir ne Menge vor, aber kein Handle oder keine Form :/ (Die muss da ja nach vorne gebracht werden) |
Re: Systray Komponente - 8 Fehler
ja das mit dem Handle war ein schuss in den Ofen :-)
habe leider keine Zeit das herauszufinden aber auf alle Fälle ist es jetzt nur noch 1 Fehler , ach ne, 2 (Handle und Form) MFG |
Re: Systray Komponente - 8 Fehler
Jetzt bekomm ich keine Fehlermeldungen mehr, danke!! :mrgreen:
Jetzt muss das Teil nur noch funktionieren... *g* |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:54 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