Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   OnClick / OnTap bei Windows / Android (https://www.delphipraxis.net/191738-onclick-ontap-bei-windows-android.html)

sko1 15. Feb 2017 12:50

OnClick / OnTap bei Windows / Android
 
Hallo,

inzwischen bin ich darauf gestoßen, dass man besser OnTap bei Android verwendet, weil dies beim Scrollen aines Formulars nicht "zufällig" ausgelöst wird wie das OnClick.

Bei OnClick passiert es oft dass der Anwender scrollen möchte, aber damit das Click auslöst wenn er z.B. einen Button unter dem Finger hat.

Soweit so gut, wie aber löst man das bei einer Anwendung, die unter Windows und Android ausgeführt wird?
Bei Windows wird kein OnTap gefeuert, also behelfe ich mir in etwa so:

Delphi-Quellcode:

procedure TFormMain.ButtonClick(Sender: TObject);
begin
//nur für Windows auf Tap umleiten
{$IFDEF MSWINDOWS}
  ButtonTap(Sender, Pointf(0, 0));
{$ENDIF}
end;

procedure TFormMain.ButtonTap(Sender: TObject; const Point: TPointF);
begin
.....

schön ist das nicht gerade, gibt es eine besseren Weg?

Ciao
Stefan

himitsu 15. Feb 2017 13:03

AW: OnClick / OnTap bei Windows / Android
 
Den TButton ableiten (TMyButton) und dort das gewünschte Verhalten implementieren.
Und dann eben überall den eigenen Button verwenden.

Ich würde es ja anderrum machen.
In diesem Fall OnClick und und OnTap überschreiben, im Andrid dann OnTab an OnClick weiterleiten und bei OnClick nichts machen. Und im Programm dann überall OnClick verwenden.


Einige leiten grundsätzlich immer alle Komonenten ab, selbst wenn sich (noch) nichts ändert, aber später können sie so überall ohne Probleme ihne Änderungen/Bugfixe implementieren.

sko1 15. Feb 2017 13:06

AW: OnClick / OnTap bei Windows / Android
 
Schön, aber wie soll der abgeleitete Button zwischen Windows und Android unterscheiden, wenn von außen nur OnTap oder OnClick sichtbar ist?
Irgendwie komme ich mit dem Ansatz nicht richtig weiter...

Ciao
Stefan


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:14 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