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

