Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Mausbotschaft von CollectionItem an Komponente übergeben

  Alt 12. Jan 2007, 13:06
Hallo Uwe,

die Signatur von TMouseEvent() hat Sender: TObject als ersten Parameter - bei deinen Prozeduren MouseDown() und ItemMouseDown() fehlt dieser wichtige Parameter.

Welchen Zweck verfolgst du mit der private method TDateLine.ItemMouseDown()?

Delphi-Quellcode:
type
  TDateLine = class(TCustomGrid)
  private
    FOnItemMouseDown: TMouseEvent;
    // procedure ItemMouseDown() muss hier weg, sie wird später vom
    // Entwickler als Methode derjenigen Form vereinbart, welche TDateLine
    // beherbergt.
  published
    property OnItemMouseDown: TMouseEvent read FOnItemMouseDown write FOnItemMouseDown;
  end;
Wenn du dem Entwickler erlauben möchtest einen eigenen Event-Handler für das OnMouseDown-Event bereit zu stellen, dann solltest du nur eine Hülle bereitstellen. Die Technik kannst du beim OnMouseDown-Event von TControl studieren. Der Message-Handler ruft eine Prozedur DoMouseDown() auf - das ist die Hülle - und dort wird dann geprüft, ob der Entwickler der puslished property OnMouseDown einen eigenen Handler zugewiesen hat.

Grüße vom marabu
  Mit Zitat antworten Zitat