AGB  ·  Datenschutz  ·  Impressum  







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

Denkfehler oder Komponentenproblem?

Ein Thema von Assertor · begonnen am 19. Mär 2008
Antwort Antwort
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#1

Denkfehler oder Komponentenproblem?

  Alt 19. Mär 2008, 12:03
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
Frederik
  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 14:03 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