Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Onclick auf TAnimate? (https://www.delphipraxis.net/7308-onclick-auf-tanimate.html)

Florian H 8. Aug 2003 18:31


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

Alexander 11. Aug 2003 09:53

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:
http://msdn.microsoft.com/library/de...mouseinput.asp

Die Lösung ist aber sicher nicht die beste ...

Flogo 11. Aug 2003 13:07

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.

Florian H 11. Aug 2003 13:18

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 :? :(

Taladan 11. Aug 2003 13:50

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:
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;
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.

PS: Ein On-Click Ereignis dürfte nicht viel anders geschrieben werden.

Taladan 11. Aug 2003 13:53

Re: Onclick auf TAnimate?
 
Manchmal hilft auch ein einfacher Trick (zumindest funktioniert das mit einen StringGrid und DBGrid)

Delphi-Quellcode:
TStringGrid(DBGrid1).mousetocell(x,y,cell,row);
Das DBGrid kennt keinen Befehl namens Mousetocell, TStringGrid schon, vermutlich durch den gleichen Ursprung kann man so das Ereignis Mousetocell simulieren.

Evtl. geht das mit deinen TAnimate auch irgendwie so oder so ähnlich.

Florian H 11. Aug 2003 14:06

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 06:02 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