![]() |
Onclick auf TAnimate?
Hi!
Wie schaffe ich es, auf einen Klick eines TAnimate's zu reagieren? Das Teil hat ja nur Ereignisbehandlungsroutinen für Start+Stop und so :roll: aber nix mit onClick oder OnMouse... ! Da kann man doch bestimmt das Abfangen und umleiten....liest man doch oft bei solchen Sachen ;) nur ich weiß net wie :| gruß flo |
Re: Onclick auf TAnimate?
mhm eine möglichkeit wäre, global auf deiner Anwendung den Mausklick abzufangen und dann die Mauskoordinaten zu überprüfen.
Hier findest du einiges über die Maus: ![]() Die Lösung ist aber sicher nicht die beste ... |
Re: Onclick auf TAnimate?
noch eine ein bisschen stümperhafte lösung:
Nimm ein rechteckiges TShape mit den gleichen Eckpunkten und nimm das onClick davon. |
Re: Onclick auf TAnimate?
hab ich alles schon probiert, aber das TAnimate ist immer im Vorsergrund und wird nur durch andere "Immer-Im-Vordergrund"-Objekte wie einem TPanel, TGroupBox oder TWebbrowser , verdeckt.
geht also nicht :? :( |
Re: Onclick auf TAnimate?
Ich kenne dein TAnimate zwar net; und hab ich auch nicht, aber vielleicht funktioniert das.
Generiere eine eigene Komponente basierend auf deinen TAnimate. Setze passend ein:
Delphi-Quellcode:
Dies ist zwar kein Klick element sondern ein MouseDown (dort wo der Klick anfängt) aber es sollte reichen um einen Klick zu simulieren, solange der Nutzer einen herkömmlichen Klick macht, dürfe es genausogut funktionieren.
type
TMyAnimate = class(TAnimate) //dieser code wird normal automatisch generiert private { Private declarations } FOnMouseDown: TMouseEvent; protected { Protected declarations } procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override; published { Published declarations } property OnMouseDown read FOnMouseDown write FOnMouseDown; end; procedure Register; implementation procedure TMyAnimate.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Assigned(FOnMouseDown) then FOnMouseDown(Self, Button, Shift, X, Y); inherited MouseDown(Button, Shift, X, Y); end; procedure Register; begin RegisterComponents('Meine Komponenten', [TMyAnimate]); end; PS: Ein On-Click Ereignis dürfte nicht viel anders geschrieben werden. |
Re: Onclick auf TAnimate?
Manchmal hilft auch ein einfacher Trick (zumindest funktioniert das mit einen StringGrid und DBGrid)
Delphi-Quellcode:
Das DBGrid kennt keinen Befehl namens Mousetocell, TStringGrid schon, vermutlich durch den gleichen Ursprung kann man so das Ereignis Mousetocell simulieren.
TStringGrid(DBGrid1).mousetocell(x,y,cell,row);
Evtl. geht das mit deinen TAnimate auch irgendwie so oder so ähnlich. |
Re: Onclick auf TAnimate?
@Taladan: Super, funzt!!
Geil, hätte nicht gedacht dass man sowas so leicht hinzufügen kann... ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz