(модератор, 25.09.2011 19:28 мск) выделено в отдельную тему отсюда:viewtopic.php?p=54120#p54120

Тема хоть и про автоматическую, но расстановку окон, поэтому решил сюда написать.

При работе люблю ставить редактируемый текст справа, слева --- опорный для просмотра. Например, исходник-документация. На стационарном компе каждый раз расставлял окна мышкой. На тачпаде ноутбука эта операция оказалась для меня затруднительна и появился такой костыль:
## Код:
```
"Окно налево &9"   ""   "x.PlaceWindow(0)"   ""
   "Окно направо &0"   ""   "x.PlaceWindow(1)"   ""
```
## Код:
```
PROCEDURE PlaceWindow* (n: INTEGER);
      VAR
         rect: WinApi.RECT; cw, ch, x, y, w, h: INTEGER;
         res: INTEGER;
         fw: Windows.Window;
   BEGIN
      ASSERT(n IN {0, 1}, 20);
      fw := Windows.dir.Focus(FALSE);
      IF fw # NIL THEN
         res := WinApi.GetWindowRect(HostWindows.client, rect); ASSERT(res # 0, 0);
         cw := rect.right - rect.left; ASSERT(cw >= 0, 0);
         ch := rect.bottom - rect.top; ASSERT(ch >= 0, 0);
         res := WinApi.GetWindowRect(fw(HostWindows.Window).wnd, rect); ASSERT(res # 0, 0);
         w := rect.right - rect.left; ASSERT(w >= 0, 0);
         h := rect.bottom - rect.top; ASSERT(h >= 0, 0);
         IF n = 0 THEN
            x := 0; y := 0; h := ch
         ELSE   (* n = 1 *)
            x := cw - w; y := 0; h := ch
         END;
         res := WinApi.MoveWindow(fw(HostWindows.Window).wnd, x, y, w, h, WinApi.TRUE)
      END
   END PlaceWindow;
```


(р-р кол-ции) карточка:http://oberoncore.ru/bbcc/subs/i21sys/