AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Mausbotschaft von CollectionItem an Komponente übergeben
Thema durchsuchen
Ansicht
Themen-Optionen

Mausbotschaft von CollectionItem an Komponente übergeben

Ein Thema von uwewo · begonnen am 5. Jan 2007 · letzter Beitrag vom 13. Jan 2007
 
uwewo

Registriert seit: 14. Jul 2004
Ort: Karlsruhe
479 Beiträge
 
Delphi 2006 Professional
 
#1

Mausbotschaft von CollectionItem an Komponente übergeben

  Alt 5. Jan 2007, 12:43
Hallo,

ein besserer Titel ist mir leider nicht eingefallen, hoffe man versteht trotzdem was ich meine.

Bin immer noch am entwickeln meiner ersten Komponente, stehe aber im Moment gerade vor dem nächsten Problem. Zur Zeit verwende ich folgenden Source, um die Mausbotschaften MouseOver und MouseLeave meiner Items an die Komponente DateLine zu übergeben.

Delphi-Quellcode:

TControlDateItem = class(TGraphicControl)
  private
   FOnMouseOver : TNotifyEvent;
   FOnMouseLeave : TNotifyEvent;
   procedure MouseOver(var Message : TMessage); message CM_MOUSEENTER;
   procedure MouseLeave(var Message : TMessage); message CM_MOUSELEAVE;
...
   published
   property OnMouseOver : TNotifyEvent read FOnMouseOver write FOnMouseOver;
   property OnMouseLeave : TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
...
  end;

TDateLine = class(TCustomGrid)
  private
    FItemMouseOver : TNotifyEvent;
    FItemMouseLeave : TNotifyEvent;
    procedure ItemMouseOver(Sender : TObject);
    procedure ItemMouseLeave(Sender : TObject);
...
  published
    property OnItemLeave : TNotifyEvent read FItemMouseLeave write FItemMouseLeave;
    property OnItemDown : TMouseEvent read FItemMouseDown write FItemMouseDown;
...
end;

procedure TDateLine.UpdateItem(Item : TDateItem);
begin
if Item <> nil then
    begin
     with Item.FControlDateItem do
      begin
       OnMouseOver := ItemMouseOver;
       OnMouseLeave := ItemMouseLeave;
      end;
    end;
end;
Nun möchte ich auch MouseDown, MouseUp usw. übergeben.
Ich denke mal, daß ich mit folgendem Source auf dem richtigen Weg bin.

Delphi-Quellcode:
TControlDateItem = class(TGraphicControl)
  private
     FOnMouseDown : TMouseEvent;
     procedure MouseDown(Button: TMouseButton; Shift: TShiftState;X, Y: Integer); override;
...
   published
     property OnMouseDown : TMouseEvent read FOnMouseDown write FOnMouseDown;
...
  end;

TDateLine = class(TCustomGrid)
  private
    FItemMouseDown : TMouseEvent;
    procedure ItemMouseDown(Button: TMouseButton; Shift: TShiftState;X, Y: Integer);
...
  published
    property OnItemDown : TMouseEvent read FItemMouseDown write FItemMouseDown;
...
end;
Die Zuweisung

Delphi-Quellcode:
procedure TDateLine.UpdateItem(Item : TDateItem);
begin
if Item <> nil then
    begin
     with Item.FControlDateItem do
      begin
...
       OnMouseDown := ItemMouseDown;
      end;
    end;
end;
funktioniert natürlich nicht da noch die Parameter
(Button: TMouseButton; Shift: TShiftState;X, Y: Integer);

übergeben werden müssen, und hier liegt mein Problem wie sollte die Syntax genau aussehen?

Danke schonmal an alle die sich dieses Problems annehmen.

Uwe
Angehängte Grafiken
Dateityp: jpg dateline_963.jpg (116,5 KB, 21x aufgerufen)
Uwe
  Mit Zitat antworten Zitat
 


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 11:49 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