METHOD Set_position(
REAL L|eft_position,
REAL T|op_position,
{positioning} Options|_positions)
:
CASE Handle == 0 ? ==> ; ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
CASE Options == 'POSITION_AS_IS' ? ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Set_form_position(Handle, L, T) ==> ; ▄▄▄▄▄▄▄▄▄▄▄▄▄█
REAL x|_new_position = L
REAL y|_new_position = T
{rect} lmon|itors[]
Screen_.List_monitors(lmon[])
FOR m IN lmon[] : ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
CASE !m.Contains_pt(Pt(x, y)) ? CONTINUE m ; ▄▄▄▄▄▄ █
CASE Options == 'CENTER_ON_SCREEN' ? ▄▄▄▄▄▄▄▄▄▄▄▄▄▄ █
x = m.Loc.X + (m.Width - Width)/2 █ █
y = m.Loc.Y + (m.Height - Height)/2 █ █
ELSE █ █
CASE x + Width > m.Right ? ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ █ █
x = m.Right - Width ; ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ █ █
CASE y + Height > m.Bottom ? ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ █ █
y = m.Bottom - Height ; ▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ █ █
; ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ █
BREAK m ; ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
Set_form_position(Handle, x, y) .