Ich habe das Problem bei einer Android-App gerade mit dem OnViewPortPositionChange-Event der TVertScrollBox so gelöst:
Ich merke mir die aktuelle Zeit wann der Viewport sich ändert ...
Delphi-Quellcode:
Var ZuletztGescrolltUm: TDateTime;
procedure TZeiterfassung.VertScrollBox2ViewportPositionChange(Sender: TObject; const OldViewportPosition,
NewViewportPosition: TPointF; const ContentSizeChanged: Boolean);
begin
inherited;
ZuletztGescrolltUm:= now;
end;
... und der Button reagiert erst, wenn seit dem letzten Verschieben des Viewports mindestens eine halbe Sekunde vergangen ist:
Delphi-Quellcode:
Const EineSekunde = 1.0 / 24 / 60 / 60;
procedure TZeiterfassung.btnAuftragGeklickt (Sender: TObject);
begin
inherited;
if (now - ZuletztGescrolltUm) > (EineSekunde * 0.5) then
begin
...
end;
end;
Habe es gerade erst programmiert. Mal sehen, ob es sich bewährt.