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/)
-   -   Griid Scrollen mit einem Touchsreen (https://www.delphipraxis.net/159329-griid-scrollen-mit-einem-touchsreen.html)

franktron 23. Mär 2011 12:47

Griid Scrollen mit einem Touchsreen
 
Ich habe eine Applikation wo ich eine cxGrid habe, nun möchte ich das ich wenn ich auf die Grid klicke und dann rauf und runter ziehen das die Grid mit scrollt.

Wie kann ich das machen.

Ich nutze Delphi 2010 Pro.

Hobby-Programmierer 23. Mär 2011 14:47

AW: Griid Scrollen mit einem Touchsreen
 
Tach ...
war nicht genau dafür die Gestensteuerung gedacht?

himitsu 23. Mär 2011 14:56

AW: Griid Scrollen mit einem Touchsreen
 
Eine Geste wäre das nicht wirklich.

Also du willst praktisch, wenn man mit der Maus auf das Grid klickt und dabei den Mauszeiger verschiebt, daß sich das Grid mit verschiebt.

Tja, dann implementier das doch?
OnMouseMove und Co.

franktron 23. Mär 2011 15:05

AW: Griid Scrollen mit einem Touchsreen
 
Zitat:

Zitat von himitsu (Beitrag 1090503)
Eine Geste wäre das nicht wirklich.

Also du willst praktisch, wenn man mit der Maus auf das Grid klickt und dabei den Mauszeiger verschiebt, daß sich das Grid mit verschiebt.

Tja, dann implementier das doch?
OnMouseMove und Co.

Das ist Plan B ich dachte es geht irgendwie einfacher

himitsu 23. Mär 2011 15:13

AW: Griid Scrollen mit einem Touchsreen
 
Du kannst jeweils eine Geste implementieren
> senkrechter Strich nach unten = eine Seite runterscrollen
> senkrechter Strich nach oben = eine Seite hochscrollen
> usw.

Aber so ein iPhone-mäßiges Scrollen wäre das nicht direkt

Muellermilchtrinker 23. Mär 2011 15:14

AW: Griid Scrollen mit einem Touchsreen
 
Such mal im Forum nach iTwin. Da wurde so ein Iphone-mäßiges Scrollen eingebaut. Ein Codebeispiel war auch dabei. ;)

himitsu 23. Mär 2011 15:23

AW: Griid Scrollen mit einem Touchsreen
 
Delphi-Quellcode:
{ Public declarations der Form }
ScrollActiv: Boolean;
ScrollOld: TPoint;

procedure Tfmain.StringGrid1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  ScrollActiv := Button = mbLeft; // oder if Button = mbLeft then ScrollActiv := True;
  ScrollOld.X := X;
  ScrollOld.Y := Y;
end;

procedure Tfmain.StringGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if ScrollActiv then begin
    //SetCaptureControl(nil);
    StringGrid1.ScrollBy(X - ScrollOld.X, Y - ScrollOld.Y);
    ScrollOld.X := X;
    ScrollOld.Y := Y;
  end;
end;

procedure Tfmain.StringGrid1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  ScrollActiv := False; // oder if Button = mbLeft then ScrollActiv := False;
end;
Aber bezüglich des ScrollBy müßte man nochmal nachschauen, ob es da was besseres gibt, welches wirklich/richtig funktioniert.


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