Работа с окнами

Здесь можете задавать любые вопросы и не бойтесь даже глупых вопросов!
Ответить
Аватара пользователя
Андрей
продвинутый
Сообщения: 15
Зарегистрирован: 01 июн 2009, 22:30

Работа с окнами

Сообщение Андрей »

Здравствуйте!

Появилась пара вопросов...

Можно ли в LangMF сделать модальные окна, т.е. чтобы родительское окно было не доступно пока не закроется дочернее?
Аватара пользователя
Атом
начинающий
Сообщения: 7
Зарегистрирован: 03 июл 2007, 23:26
Откуда: Пермь

Сообщение Атом »

Код: Выделить всё

Form.Show vbModal
Аватара пользователя
Андрей
продвинутый
Сообщения: 15
Зарегистрирован: 01 июн 2009, 22:30

Сообщение Андрей »

Спасибо!
Sovnik
начинающий
Сообщения: 2
Зарегистрирован: 18 авг 2008, 23:29

Re: Работа с окнами

Сообщение Sovnik »

У меня тоже возникала необходимость сдвинуть модальное окно.
Вышел из положения так.

- В процедуре основной формы (form1) запустил модальную форму (formHelp):
formHelp.show vbModal

- В разделе модальной формы <#Form=formHelp>
в процедуре Sub Form_Activate()
указал нужные координаты модальной формы относительно основной формы:
formHelp.left = form1.left + form1.width/15
formHelp.top = form1.top + form1.Height
Аватара пользователя
Андрей
продвинутый
Сообщения: 15
Зарегистрирован: 01 июн 2009, 22:30

Сообщение Андрей »

Немного дополню про центрирование модального окна относительно его родителя (Спасибо Sovnik за идею!):

Код: Выделить всё

<#Module=mdlMain>
Sub Load(cmdLine)
	with form
		.width=530*vbPX:.height=345*vbPY
		.add "command",1
		.command(1).caption="child"
		.command(1).move 200,209,100,20
		' ...
		.show
	end with
End Sub
<#Module>

<#form=form>
Sub Command1_Click()
    with child
		.width=200*vbPX:.height=100*vbPY
		' ...
		.show vbModal
    end with
End Sub
Sub Form_Unload()
	endmf
End Sub
<#Form>

<#form=child>
Sub Form_Activate()
   child.Left = form.Left+(form.width/2 - child.width/2)
   child.Top = form.Top+(form.height/2- child.height/2)
End Sub
<#Form>

И чтобы совсем все стало ясно...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ответить