Oppure

Loading
18/04/12 11:32
lucca
Salve a tutti,
volevo chiedervi come si potrebbe trovare la posizione del mouse all'interno della form.
Io ho provato così ma mi mostra la posizione del mouse sullo schermo:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Timer1.Interval:=10;
  GetCursorPos(mousepos);
  edit1.Text := IntToStr(mousepos.x);
  edit2.text := IntToStr(mousepos.y);
end;

Quindi NON è giusto.
Ho provato così:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  GetCursorPos(mousepos);
  edit1.Text := IntToStr(mousepos.x);
  edit2.text := IntToStr(mousepos.y);
end;

ma se passo davanti al campo edit o su qualche altro oggetto mi si blocca(giustamente!!).
come è possibile ovviare a questo problema???? grazie per aver letto!!!
ciao
aaa
18/04/12 13:18
Dark_light
Nel primo codice devi sottrarre le coordinate del form (left e top).
;)
aaa
18/04/12 20:30
smanettone83
basta semplicemente che sull'evento del form OnMouseMouve usi questo codice:

edit1.Text:= inttostr(x);
edit2.Text:= inttostr(y);
aaa
19/04/12 12:54
Dark_light
Postato originariamente da smanettone83:

basta semplicemente che sull'evento del form OnMouseMouve usi questo codice:

edit1.Text:= inttostr(x);
edit2.Text:= inttostr(y);



"ma se passo davanti al campo edit o su qualche altro oggetto mi si blocca(giustamente!!). "
aaa
19/04/12 16:34
smanettone83
è normale perche il codice e' viene generato sull'evento OnMouseMove.
In questo caso quoto quanto detto in precedenza:

Nel primo codice devi sottrarre le coordinate del form (left e top).
aaa
24/04/12 14:13
lucca
Postato originariamente da Dark_light:

Nel primo codice devi sottrarre le coordinate del form (left e top).
;)


Ok grazie mille!!! :)
aaa