Открыть окно по размеру ClientArea главного окна

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
morkovin
Ветеран
Сообщения: 908
Зарегистрирован: 20 Июль 2005, 14:53
Откуда: Volgograd, Russia
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

Открыть окно по размеру ClientArea главного окна

Сообщение morkovin »

1. После запуска программы и открытия основного окна запускается Browse-процедура. Как сделать, чтобы это окно открылось по размеру клиентской области фрейма. Может есть такой темплэйт?
2. После закрытия Browse-процедуры должна закрыться и программа-родитель. Как проще сделать?
WBR, morkovin
Constantine
Активист
Сообщения: 185
Зарегистрирован: 07 Февраль 2017, 16:58

Открыть окно по размеру ClientArea главного окна

Сообщение Constantine »

1. А Initial Size - Maximized или 0{PROP:MAXIMIZE} для окна Browse не катит?
2. Post(EVENT:CloseWindow,GLO:FrameThread)
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Открыть окно по размеру ClientArea главного окна

Сообщение Дед Пахом »

1. взять размеры клиентской области фрейма и присвоить их окну. Тут, безусловно, нужен шаблон.
2. можно послать фрейму событие "CloseDown"
С уважением, ДП
Аватара пользователя
morkovin
Ветеран
Сообщения: 908
Зарегистрирован: 20 Июль 2005, 14:53
Откуда: Volgograd, Russia
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

Открыть окно по размеру ClientArea главного окна

Сообщение morkovin »

идея в том, чтобы сделать "one procedure programm". юзер должен считать , что просто вызвал процедуру из своей программы.
WBR, morkovin
Аватара пользователя
morkovin
Ветеран
Сообщения: 908
Зарегистрирован: 20 Июль 2005, 14:53
Откуда: Volgograd, Russia
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

Открыть окно по размеру ClientArea главного окна

Сообщение morkovin »

Post(EVENT:CloseWindow,GLO:FrameThread)
делаю в основном окне
GLO:FrameThread = thread()
и методе Kill для browse-proc
Post(EVENT:CloseWindow,GLO:FrameThread)
и ничего не происходит при закрытии процедуры (по "крестику" или по кнопке)
WBR, morkovin
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Открыть окно по размеру ClientArea главного окна

Сообщение kreator »

morkovin, у нас есть такое. Из фрейма вызывается обычное окно без mdi с опцией Maximize (или как там называется). Оно перекрывает фрейм полностью.
We are hard at work… for you. :)
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Открыть окно по размеру ClientArea главного окна

Сообщение kreator »

morkovin писал(а): 11 Апрель 2019, 13:40
Post(EVENT:CloseWindow,GLO:FrameThread)
делаю в основном окне
GLO:FrameThread = thread()
и методе Kill для browse-proc
Post(EVENT:CloseWindow,GLO:FrameThread)
и ничего не происходит при закрытии процедуры (по "крестику" или по кнопке)
По-моему это делать вообще не надо. Очень надо запустить процедуру через start?
We are hard at work… for you. :)
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Открыть окно по размеру ClientArea главного окна

Сообщение 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 
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Открыть окно по размеру ClientArea главного окна

Сообщение Yufil »

А с закрытием программы-родителя см. команду HALT :D
Или Post(Event:CloseWindow,,1)
Аватара пользователя
morkovin
Ветеран
Сообщения: 908
Зарегистрирован: 20 Июль 2005, 14:53
Откуда: Volgograd, Russia
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

Открыть окно по размеру ClientArea главного окна

Сообщение morkovin »

1. А Initial Size - Maximized или 0{PROP:MAXIMIZE} для окна Browse не катит?
обычное окно без mdi с опцией Maximize (или как там называется). Оно перекрывает фрейм полностью.
Вообще во весь экранище открывается... не очень удобно
WBR, morkovin
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Открыть окно по размеру ClientArea главного окна

Сообщение kreator »

Тогда просто Maximize. А закрыть фрейм вообще очень просто. Во фрейме нужно узнать thread броуза (при запуске этого броуза можно сделать). В таймере фрейма проверять эту переменную. Как только стала нулём, закрываем фрейм.
We are hard at work… for you. :)
Аватара пользователя
morkovin
Ветеран
Сообщения: 908
Зарегистрирован: 20 Июль 2005, 14:53
Откуда: Volgograd, Russia
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

Открыть окно по размеру ClientArea главного окна

Сообщение morkovin »

Очень надо запустить процедуру через start?
Да. Это окно FrbReportManager. Если без Start, то далее будет GPF
Или Post(Event:CloseWindow,,1)
Спасибо! Работает!
WBR, morkovin
Аватара пользователя
morkovin
Ветеран
Сообщения: 908
Зарегистрирован: 20 Июль 2005, 14:53
Откуда: Volgograd, Russia
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

Открыть окно по размеру ClientArea главного окна

Сообщение morkovin »

! Переходим в тред фрейма
SETTARGET(,1)
! Метрики в пикселах
....
Спасибо! Работает!
! То же самое для текущего окна
0{prop:Pixels} = TRUE
SETPOSITION( 0, 0, 0, FrameClientWidth, FrameClientHeight )
0{Prop:Pixels} = FALSE
Надо вставлять после Initialize resizer
WBR, morkovin
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Открыть окно по размеру ClientArea главного окна

Сообщение 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
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Открыть окно по размеру ClientArea главного окна

Сообщение Yufil »

А ещё проще написать HALT() - и всё закроется. Кстати, самый лучший вариант, POST могут быть перехвачены или не сработать, вдруг я из фрейма вызвал формочку без START'а .
Ответить