Einzelnen Beitrag anzeigen

Schneck

Registriert seit: 22. Jun 2004
18 Beiträge
 
Delphi 7 Personal
 
#1

Hamsterlaufrad ääh Mauslaufrad

  Alt 22. Jun 2004, 20:50
Hallilallo,

ich bin ziemlich neu hier, hab mich bisher mehr schlecht als recht als Einzelkämpfer durchgeschlagen (es gibt gar nicht so viele Delphianer!) und bleib regelmäßig mal hier mal dort im Programmcode stecken ..., bin so etwa in der Phase eines ganz leicht fortgeschrittenen Anfängers.

Meine hoffnungslose Situation: Ich habe eine Komponente TZeichenBlatt von TImage abgeleitet. Wenn ich mit der Maus über die fertige Komponente fahre, soll beim Mausraddrehen gezoomt werden. Ich möchte nicht nur das OnMouseWheel Ereignis im Objektinspektor sehen, sondern ich möchte auch, dass das dann funktioniert, ohne dass ich eine entsprechende Procedure erst schreiben muss, NACHDEM ich meine Komponente auf Form1 plaziert habe; der Code soll schon im Quelltext der Komponente drinnen sein; ich glaube man sagt dazu, ein Ereignis zur Laufzeit realisieren (?).

Frage: Wie kann ich auf das OnMouseWheel Ereignis zugreifen? Das OnClick Ereignis ist ja bei TImage standartmäßig dabei, aber das OnMouseWheel nicht! Kann ich es irgendwie von TControl ableiten? Wie geht das? Hab auch schon untenstehendes versucht, aber auf das Mausrad ragiert nix!!!!!!!! Es tut sich überhaupt nix, nix, nix!-((( Wie kann ich tun, dass irgendetwas auf mein Mauslaufrad reagiert?

Ich hab sicher einen easycollen extrasimplen Fehler oder ein IQ-Problem!
Vielleich kann mir jemand helfen, damit ich nicht den ganzen Tag

Danke feste
Schneck



Delphi-Quellcode:

type
TMausAnzeige = procedure(Sender: TObject; Shift: TShiftState; X, Y: Integer) of Object;
TZeichenBlatt = class(TImage)
  private
    procedure MausDrehen(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
   ...
  protected
   ...
  public
   ...
  published
    Property OnMouseWheel;
   ...


...

procedure TZeichenblatt.MausDrehen(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
   if WheelDelta > 0 then ShowMessage('ää');
   Canvas.TextOut(10,10,'hjhjhhjhgjkghk');
   Handled := True;
end;

constructor TZeichenBlatt.Create(aOwner: TComponent);
begin
  inherited create(aOwner);
...
  OnMouseWheel := Mausdrehen;
..
end;

...
  Mit Zitat antworten Zitat