OberonCore https://forum.oberoncore.ru/ |
|
i21sysWindows - обслуживание окон документов в Блэкбоксе https://forum.oberoncore.ru/viewtopic.php?f=90&t=3516 |
Страница 1 из 1 |
Автор: | Евгений Темиргалеев [ Понедельник, 25 Июль, 2011 11:24 ] |
Заголовок сообщения: | i21sysWindows - обслуживание окон документов в Блэкбоксе |
(модератор, 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/ |
Автор: | Info21 [ Понедельник, 25 Июль, 2011 16:45 ] |
Заголовок сообщения: | Re: i21sysDesktop - охранялка конфигурации окон |
i21sysWindows уже имеет что-то такое. |
Автор: | Евгений Темиргалеев [ Понедельник, 25 Июль, 2011 18:30 ] |
Заголовок сообщения: | Re: i21sysWindows - обслуживание окон документов в Блэкбоксе |
Код: DEFINITION i21sysWindows; Отличие --- не меняется размер по вертикали.
PROCEDURE AlignTopLeft; PROCEDURE AlignTopRight; ... END i21sysWindows. |
Автор: | Info21 [ Понедельник, 25 Июль, 2011 21:32 ] |
Заголовок сообщения: | Re: i21sysWindows - обслуживание окон документов в Блэкбоксе |
Евгений Темиргалеев писал(а): Код: DEFINITION i21sysWindows; Отличие --- не меняется размер по вертикали.PROCEDURE AlignTopLeft; PROCEDURE AlignTopRight; ... END i21sysWindows. |
Автор: | Евгений Темиргалеев [ Понедельник, 25 Июль, 2011 22:25 ] |
Заголовок сообщения: | Re: i21sysWindows - обслуживание окон документов в Блэкбоксе |
Да, я согласен что лучше использовать уже имеющийся компонент i21sysWindows. Просто про него не знал, или, скорее внимания не обратил в своё время, т. к. потребности не было. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |