Zapamiętanie początkowej pozycji kursora myszy

Odpowiedz Nowy wątek
2015-01-04 14:43
0

Witam,
Chcę zachować początkową wartość pozycji myszki, niezaleznie od późniejszego jej ruchu, np rozpoczynam ruch od t.X = 120 I aby ta poczatkowa wartość nie ulegała zmianie. Prosił bym opodpowiedż.

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single);
var
  T:TPointF;
  pocz:integer;
begin
  t := screen.MousePos ;
  pocz := t.X; // wartosc odczytana jednorazowo odczytujac polozenie poczatkowe kursora
  if pocz < round(t.X) then
    begin
      {wykonaj kod}
    end else
   if pocz > round(t.X) then
      Begin
         {wykonaj kod}
      End;
end;
edytowany 2x, ostatnio: grafo, 2015-01-04 16:43

Pozostało 580 znaków

2015-01-04 15:04
0

przenieś zmienną pocz do klasy jako pole prywatne.

no i na pewno nie powinien to być string.

Pozostało 580 znaków

2015-01-04 15:17
0

... i na pewno nie tuż przed sprawdzeniem.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2015-01-04 15:39
0

@grafo - jeśli początkową pozycję kursora myszy chcesz odczytać raz, to na pewno nie powinieneś tego robić w zdarzeniu OnMouseMove, bo ono wykonywane jest wielokrotnie.


Pozostało 580 znaków

2015-01-04 17:00
0

Dziękuję za zainteresowanie tematem z tym, że nie bardzo wiem gdzie powinieniem umieścić procedure odczytu. Kiedy dotknę ekranu telefonu to w zdarzeniu MouseMove Od razu odczytuje mi pozycje myszy (palca) na komponęcie TImage. Wiem, że powinna ona być poza procedurą MouseMove jednak nie wiem jak ją uruchomić po dotknieciu ekranu :(

Pozostało 580 znaków

2015-01-04 17:01
0

Przy dotknięciu - MouseDown


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2015-01-04 21:53
0

Próbuję uruchomić kod w MouseDown wyświetla mi wartość 0 przy pierwszym dotknięciu a po ponownym dotknięciu wyświetlacza pokazuje ostatnią pozycję na której oderwałem palec od wyświetlacza wcześniej:(

 procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Single);
var
sd : TPointF;
begin
   sd:= screen.MousePos;
    label1.Text := FloatToStr(round(sd.X));
end;

Nie mogę uzyskać polożenia kursora podczas dotyku, natomiast w MouseMove jeżeli tylko dotknę wyświetlacz to pokazuje mi pozycję kursora w miejscu dotknięcia.

Pozostało 580 znaków

2015-01-04 22:04
procedure TForm1.Image1MouseDown(Sender:TObject;Button:TMouseButton;Shift:TShiftState;X,Y:Single);
begin
    label1.Text:=FloatToStr(X);
end;

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2015-01-04 22:15
0

_13th_Dragon dziekuję, działa :)

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0