AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Systray Komponente - 8 Fehler

Ein Thema von MisterNiceGuy · begonnen am 8. Dez 2004 · letzter Beitrag vom 8. Dez 2004
Antwort Antwort
Benutzerbild von MisterNiceGuy
MisterNiceGuy

Registriert seit: 1. Jul 2003
Ort: Mannheim
919 Beiträge
 
Delphi 7 Personal
 
#1

Systray Komponente - 8 Fehler

  Alt 8. Dez 2004, 10:03
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:
[...]

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;
Jetzt werden vom Compiler folgende Meldungen angezeigt:

Code:
[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
Dass er Form1 nicht kennt, kapier ich, aber wie ich das mit dem WNDPROC hinbekomme weiß ich nicht!
Hat eine Komponente immer einen Besitzer, dem ich dann die neue WndProc zuweisen kann?

Hoffe ihr könnt mir helfen!!
Jonas
Wenn mich jemand sucht, ich bin im Kühlschrank!

Informationen über das Duale Studium
www.jofre.de
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#2

Re: Systray Komponente - 8 Fehler

  Alt 8. Dez 2004, 11:02
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
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#3

Re: Systray Komponente - 8 Fehler

  Alt 8. Dez 2004, 11:03
achso:

deine property müssen so heißen:

Delphi-Quellcode:
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;
MFG Alex
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#4

Re: Systray Komponente - 8 Fehler

  Alt 8. Dez 2004, 11:04
und die procedure musst du auch noch Implementieren:

procedure TSystray.WMSysCommand(var Message: TWMSysCommand);
begin
//MACH IRGENDWAS
end;
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Benutzerbild von MisterNiceGuy
MisterNiceGuy

Registriert seit: 1. Jul 2003
Ort: Mannheim
919 Beiträge
 
Delphi 7 Personal
 
#5

Re: Systray Komponente - 8 Fehler

  Alt 8. Dez 2004, 11:08
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)
Jonas
Wenn mich jemand sucht, ich bin im Kühlschrank!

Informationen über das Duale Studium
www.jofre.de
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#6

Re: Systray Komponente - 8 Fehler

  Alt 8. Dez 2004, 11:10
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
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Benutzerbild von MisterNiceGuy
MisterNiceGuy

Registriert seit: 1. Jul 2003
Ort: Mannheim
919 Beiträge
 
Delphi 7 Personal
 
#7

Re: Systray Komponente - 8 Fehler

  Alt 8. Dez 2004, 11:20
Jetzt bekomm ich keine Fehlermeldungen mehr, danke!!

Jetzt muss das Teil nur noch funktionieren... *g*
Jonas
Wenn mich jemand sucht, ich bin im Kühlschrank!

Informationen über das Duale Studium
www.jofre.de
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:54 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