Страница 1 из 1

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

Добавлено: 18 май 2010, 18:57
Андрей
Здравствуйте!

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

Можно ли в LangMF сделать модальные окна, т.е. чтобы родительское окно было не доступно пока не закроется дочернее?

Добавлено: 18 май 2010, 20:29
Атом

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

Form.Show vbModal

Добавлено: 18 май 2010, 22:16
Андрей
Спасибо!

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

Добавлено: 20 май 2010, 19:47
Sovnik
У меня тоже возникала необходимость сдвинуть модальное окно.
Вышел из положения так.

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

- В разделе модальной формы <#Form=formHelp>
в процедуре Sub Form_Activate()
указал нужные координаты модальной формы относительно основной формы:
formHelp.left = form1.left + form1.width/15
formHelp.top = form1.top + form1.Height

Добавлено: 22 июн 2010, 22:59
Андрей
Немного дополню про центрирование модального окна относительно его родителя (Спасибо 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>

И чтобы совсем все стало ясно...