Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Denkfehler oder Komponentenproblem? (https://www.delphipraxis.net/110524-denkfehler-oder-komponentenproblem.html)

Assertor 19. Mär 2008 12:03


Denkfehler oder Komponentenproblem?
 
Hallo Mitstreiter,

ich stehe gerade auf dem Schlauch bei einem Eventhandler.

Konkret habe ich eine Klasse, die einem TNA Icon kurzzeitig einen Eventhandler für die Balloonhints zuweisen soll.

Das Problem: Der Eventhandler wird nicht ausgelöst weil er nicht an das zugeordnete Objekt übergeben wird.

Code (die üblichen Verdächtigen):

Delphi-Quellcode:
type
  TTestKlasse = class(TComponent)
  private
    ...
    FTrayIcon: TTntTrayIcon;                
    ...
  published
    property TrayIcon: TTntTrayIcon read FTrayIcon write FTrayIcon;
  end;
Das TrayIcon wird im MainForm erzeugt, und es sind keine Eventhandler zugewiesen. Der Klasseninstanz wird nun das MainForm-Icon über die Property übergeben. Innerhalb der TTestKlasse wird nun ein Event definiert.

Delphi-Quellcode:
procedure TTestKlasse.ShowIconNotification;
begin
  if Assigned(FTrayIcon) then
  with FTrayIcon do
  begin
    OnBalloonHintClick := DoSomething; // hier ist das Augenmerk drauf
    BalloonFlags := bfInfo;
    BalloonTitle := _('Test Header');
    BalloonHint := _('Testtext');
    ShowBalloonHint;
  end;
end;
Soweit ist also alles klar. Wenn ich das nun laufen lasse, wird der Eventhandler auch FTrayIcon zugewiesen, aber kommt nie beim externen TTntTrayIcon an (übrigens auch nicht bei TTrayIcon).

Ein Breakpoint in der TntExtCtrls, der Quelle für TTntTrayIcon, zeigt dies auch genauso an. FTrayIcon hat den Handler, aber nicht das zugewiesene TrayIcon im MainForm.

Wo ist mein Denkfehler, den ich vor lauter Programmier-Language-Hopping derzeit nicht sehe?

Gruß Assertor


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:02 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