Открыть окно по размеру ClientArea главного окна
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- morkovin
- Ветеран
- Сообщения: 910
- Зарегистрирован: 20 Июль 2005, 14:53
- Откуда: Volgograd, Russia
- Благодарил (а): 2 раза
- Поблагодарили: 3 раза
- Контактная информация:
Открыть окно по размеру ClientArea главного окна
1. После запуска программы и открытия основного окна запускается Browse-процедура. Как сделать, чтобы это окно открылось по размеру клиентской области фрейма. Может есть такой темплэйт?
2. После закрытия Browse-процедуры должна закрыться и программа-родитель. Как проще сделать?
2. После закрытия Browse-процедуры должна закрыться и программа-родитель. Как проще сделать?
WBR, morkovin
-
- Активист
- Сообщения: 185
- Зарегистрирован: 07 Февраль 2017, 16:58
Открыть окно по размеру ClientArea главного окна
1. А Initial Size - Maximized или 0{PROP:MAXIMIZE} для окна Browse не катит?
2. Post(EVENT:CloseWindow,GLO:FrameThread)
2. Post(EVENT:CloseWindow,GLO:FrameThread)
- Дед Пахом
- Старичок
- Сообщения: 3143
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 32 раза
- Контактная информация:
Открыть окно по размеру ClientArea главного окна
1. взять размеры клиентской области фрейма и присвоить их окну. Тут, безусловно, нужен шаблон.
2. можно послать фрейму событие "CloseDown"
2. можно послать фрейму событие "CloseDown"
С уважением, ДП
- morkovin
- Ветеран
- Сообщения: 910
- Зарегистрирован: 20 Июль 2005, 14:53
- Откуда: Volgograd, Russia
- Благодарил (а): 2 раза
- Поблагодарили: 3 раза
- Контактная информация:
Открыть окно по размеру ClientArea главного окна
идея в том, чтобы сделать "one procedure programm". юзер должен считать , что просто вызвал процедуру из своей программы.
WBR, morkovin
- morkovin
- Ветеран
- Сообщения: 910
- Зарегистрирован: 20 Июль 2005, 14:53
- Откуда: Volgograd, Russia
- Благодарил (а): 2 раза
- Поблагодарили: 3 раза
- Контактная информация:
Открыть окно по размеру ClientArea главного окна
делаю в основном окнеPost(EVENT:CloseWindow,GLO:FrameThread)
GLO:FrameThread = thread()
и методе Kill для browse-proc
Post(EVENT:CloseWindow,GLO:FrameThread)
и ничего не происходит при закрытии процедуры (по "крестику" или по кнопке)
WBR, morkovin
-
- ✯ Ветеран ✯
- Сообщения: 5025
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 22 раза
Открыть окно по размеру ClientArea главного окна
morkovin, у нас есть такое. Из фрейма вызывается обычное окно без mdi с опцией Maximize (или как там называется). Оно перекрывает фрейм полностью.
We are hard at work… for you.
-
- ✯ Ветеран ✯
- Сообщения: 5025
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 22 раза
Открыть окно по размеру ClientArea главного окна
По-моему это делать вообще не надо. Очень надо запустить процедуру через start?
We are hard at work… for you.
Открыть окно по размеру ClientArea главного окна
Что-то такое
Код: Выделить всё
! Переходим в тред фрейма
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 главного окна
А с закрытием программы-родителя см. команду HALT
Или Post(Event:CloseWindow,,1)
Или Post(Event:CloseWindow,,1)
- morkovin
- Ветеран
- Сообщения: 910
- Зарегистрирован: 20 Июль 2005, 14:53
- Откуда: Volgograd, Russia
- Благодарил (а): 2 раза
- Поблагодарили: 3 раза
- Контактная информация:
Открыть окно по размеру ClientArea главного окна
1. А Initial Size - Maximized или 0{PROP:MAXIMIZE} для окна Browse не катит?
Вообще во весь экранище открывается... не очень удобнообычное окно без mdi с опцией Maximize (или как там называется). Оно перекрывает фрейм полностью.
WBR, morkovin
-
- ✯ Ветеран ✯
- Сообщения: 5025
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 22 раза
Открыть окно по размеру ClientArea главного окна
Тогда просто Maximize. А закрыть фрейм вообще очень просто. Во фрейме нужно узнать thread броуза (при запуске этого броуза можно сделать). В таймере фрейма проверять эту переменную. Как только стала нулём, закрываем фрейм.
We are hard at work… for you.
- morkovin
- Ветеран
- Сообщения: 910
- Зарегистрирован: 20 Июль 2005, 14:53
- Откуда: Volgograd, Russia
- Благодарил (а): 2 раза
- Поблагодарили: 3 раза
- Контактная информация:
Открыть окно по размеру ClientArea главного окна
Да. Это окно FrbReportManager. Если без Start, то далее будет GPFОчень надо запустить процедуру через start?
Спасибо! Работает!Или Post(Event:CloseWindow,,1)
WBR, morkovin
- morkovin
- Ветеран
- Сообщения: 910
- Зарегистрирован: 20 Июль 2005, 14:53
- Откуда: Volgograd, Russia
- Благодарил (а): 2 раза
- Поблагодарили: 3 раза
- Контактная информация:
Открыть окно по размеру ClientArea главного окна
Спасибо! Работает!! Переходим в тред фрейма
SETTARGET(,1)
! Метрики в пикселах
....
Надо вставлять после Initialize resizer! То же самое для текущего окна
0{prop:Pixels} = TRUE
SETPOSITION( 0, 0, 0, FrameClientWidth, FrameClientHeight )
0{Prop:Pixels} = FALSE
WBR, morkovin
-
- ✯ Ветеран ✯
- Сообщения: 1707
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
Открыть окно по размеру ClientArea главного окна
закрыть 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
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Открыть окно по размеру ClientArea главного окна
А ещё проще написать HALT() - и всё закроется. Кстати, самый лучший вариант, POST могут быть перехвачены или не сработать, вдруг я из фрейма вызвал формочку без START'а .