>Thanks for looking at my code. You comment made me take a another look at it and I found the problem. The following code works:
>LOCAL lnLastMrow, lnLastMCol, lnNewMrow, lnNewMCol
>
>IF nButton = 1
> lnLastMrow = MROW("",3)
> lnLastMCol = MCOL("",3)
>
> DO WHILE MDOWN() AND MROW("",3) > 0 AND MCOL("",3) > 0
> lnNewMrow = MROW("",3)
> lnNewMCol = MCOL("",3)
>
> ThisForm.Top = ThisForm.Top + (lnNewMrow - lnLastMrow)
> ThisForm.Left = ThisForm.Left + (lnNewMcol - lnLastMcol)
>
> lnLastMrow = lnNewMrow
> lnLastMCol = lnNewMcol
> ENDDO
>ENDIF
>
>The multiple calls within the do while to MROW() and MCOL() apparently were causing the wierd behavior.
Sorry I couldn't be of more help, but I'm glad you found the problem.
George
Ubi caritas et amor, deus ibi est