Страница 1 из 2
Открыть окно по размеру ClientArea главного окна
Добавлено: 11 Апрель 2019, 12:17
morkovin
1. После запуска программы и открытия основного окна запускается Browse-процедура. Как сделать, чтобы это окно открылось по размеру клиентской области фрейма. Может есть такой темплэйт?
2. После закрытия Browse-процедуры должна закрыться и программа-родитель. Как проще сделать?
Открыть окно по размеру ClientArea главного окна
Добавлено: 11 Апрель 2019, 12:48
Constantine
1. А Initial Size - Maximized или 0{PROP:MAXIMIZE} для окна Browse не катит?
2. Post(EVENT:CloseWindow,GLO:FrameThread)
Открыть окно по размеру ClientArea главного окна
Добавлено: 11 Апрель 2019, 12:49
Дед Пахом
1. взять размеры клиентской области фрейма и присвоить их окну. Тут, безусловно, нужен шаблон.
2. можно послать фрейму событие "CloseDown"
Открыть окно по размеру ClientArea главного окна
Добавлено: 11 Апрель 2019, 13:14
morkovin
идея в том, чтобы сделать "one procedure programm". юзер должен считать , что просто вызвал процедуру из своей программы.
Открыть окно по размеру ClientArea главного окна
Добавлено: 11 Апрель 2019, 13:40
morkovin
Post(EVENT:CloseWindow,GLO:FrameThread)
делаю в основном окне
GLO:FrameThread = thread()
и методе Kill для browse-proc
Post(EVENT:CloseWindow,GLO:FrameThread)
и ничего не происходит при закрытии процедуры (по "крестику" или по кнопке)
Открыть окно по размеру ClientArea главного окна
Добавлено: 11 Апрель 2019, 13:43
kreator
morkovin, у нас есть такое. Из фрейма вызывается обычное окно без mdi с опцией Maximize (или как там называется). Оно перекрывает фрейм полностью.
Открыть окно по размеру ClientArea главного окна
Добавлено: 11 Апрель 2019, 13:45
kreator
morkovin писал(а): ↑11 Апрель 2019, 13:40
Post(EVENT:CloseWindow,GLO:FrameThread)
делаю в основном окне
GLO:FrameThread = thread()
и методе Kill для browse-proc
Post(EVENT:CloseWindow,GLO:FrameThread)
и ничего не происходит при закрытии процедуры (по "крестику" или по кнопке)
По-моему это делать вообще не надо. Очень надо запустить процедуру через start?
Открыть окно по размеру ClientArea главного окна
Добавлено: 11 Апрель 2019, 13:48
Yufil
Что-то такое
Код: Выделить всё
! Переходим в тред фрейма
SETTARGET(,1)
! Метрики в пикселах
0{ Prop:Pixels} = TRUE
! Получаем размеры
FrameClientWidth = 0{Prop:ClientWidth}
FrameClientHeight = 0{Prop:ClientHeight}
! Вернём как было
0{Prop:Pixels} = FALSE
SETTARGET()
! То же самое для текущего окна
0{prop:Pixels} = TRUE
SETPOSITION( 0, 0, 0, FrameClientWidth, FrameClientHeight )
0{Prop:Pixels} = FALSE
Открыть окно по размеру ClientArea главного окна
Добавлено: 11 Апрель 2019, 13:53
Yufil
А с закрытием программы-родителя см. команду
HALT
Или Post(Event:CloseWindow,,1)
Открыть окно по размеру ClientArea главного окна
Добавлено: 11 Апрель 2019, 13:54
morkovin
1. А Initial Size - Maximized или 0{PROP:MAXIMIZE} для окна Browse не катит?
обычное окно без mdi с опцией Maximize (или как там называется). Оно перекрывает фрейм полностью.
Вообще во весь экранище открывается... не очень удобно
Открыть окно по размеру ClientArea главного окна
Добавлено: 11 Апрель 2019, 13:59
kreator
Тогда просто Maximize. А закрыть фрейм вообще очень просто. Во фрейме нужно узнать thread броуза (при запуске этого броуза можно сделать). В таймере фрейма проверять эту переменную. Как только стала нулём, закрываем фрейм.
Открыть окно по размеру ClientArea главного окна
Добавлено: 11 Апрель 2019, 14:00
morkovin
Очень надо запустить процедуру через start?
Да. Это окно FrbReportManager. Если без Start, то далее будет GPF
Или Post(Event:CloseWindow,,1)
Спасибо! Работает!
Открыть окно по размеру ClientArea главного окна
Добавлено: 11 Апрель 2019, 14:39
morkovin
! Переходим в тред фрейма
SETTARGET(,1)
! Метрики в пикселах
....
Спасибо! Работает!
! То же самое для текущего окна
0{prop:Pixels} = TRUE
SETPOSITION( 0, 0, 0, FrameClientWidth, FrameClientHeight )
0{Prop:Pixels} = FALSE
Надо вставлять после Initialize resizer
Открыть окно по размеру ClientArea главного окна
Добавлено: 12 Апрель 2019, 10:33
gopstop2007
закрыть frame и все окна(о) можно проще - PRESSKEY(AtlF4)
окно по размеру, вот рабочий фрагмент кода:
Код: Выделить всё
WindChild WINDOW,AT(0,0,573,325),FONT('Tahoma',9,,FONT:regular,CHARSET:DEFAULT),NOFRAME,MAXIMIZE, |
ALRT(EscKey),COLOR(00FFFFF0h),IMM,MDI
END
Открыть окно по размеру ClientArea главного окна
Добавлено: 12 Апрель 2019, 13:26
Yufil
А ещё проще написать HALT() - и всё закроется. Кстати, самый лучший вариант, POST могут быть перехвачены или не сработать, вдруг я из фрейма вызвал формочку без START'а .