Изменение высоты модального окна при открытии

Промешан
Дата: 11.01.2012 16:02:16
Как изменить размер окна при открытии, учитывая что окно модальное, ленточная форма, в деталях поля, в заголовке надпись.

При открытии стандартном - высота формы такова, что виден только заголовок и одна запись из датасета. Что бы все записи увидеть - нужно расширить вниз окно.

Поискал - нашел вариант DoCmd.MoveSize в Form_Open

Есть еще, более понятные варианты? (Мне почему-то казалось, что что-то вроде Me.Height - это чудовищно очевидно, но нет).
Я
Дата: 11.01.2012 16:36:31
Ленточную делай как подчиненную. Главную - модальной
Промешан
Дата: 11.01.2012 16:45:06
Я
Ленточную делай как подчиненную. Главную - модальной
По-другому никак? Что нету кроме DoCmd.MoveSize и через подчиненки?
Я
Дата: 11.01.2012 16:48:27
По другому не пробовал. Меня устроило и так
Промешан
Дата: 11.01.2012 16:54:20
Я
По другому не пробовал. Меня устроило и так
Дикость какая-то.
Ukraina
Дата: 11.01.2012 16:56:44
Промешан,

Отредактируй форму как тебе нужно, как подгонишь нужные размеры нажми CTRL+S (запоминание размеров)

А лучше заново создай форму, ты уже значит намудрил с размерами...
Анатолий ( Киев )
Дата: 11.01.2012 17:34:12
Справка
Свойства InsideHeight и InsideWidth позволяют указать или определить (в единицах твип) внутренние размеры окна, содержащего форму.

Значения

· Свойство InsideHeight. Значение типа Integer, представляющее высоту внутренней области окна формы в единицах твип.
· Свойство InsideWidth. Значение типа Integer,представляющее ширину внутренней области окна формы в единицах твип.

Свойства InsideHeight и InsideWidth являются доступными только в макросах и в программах Visual Basic. Они допускают изменение значений в любое время.

Дополнительные сведения

Для того чтобы определить внутренние размеры самой формы следует использовать свойства Ширина (Width) для определения ее ширины, и сумму высот видимых областей (свойство Высота (Height), применяемое только к областям, а не к формам). Внутренней областью формы называют всю область внутри границ формы за исключением полос прокрутки и области выделения записей.

Использование свойств WindowHeight и WindowWidth позволяет определить высоту и ширину окна формы.

Если окно максимизировано, установка этих не имеет результатов до тех пор, пока оно не будет возвращено к своим исходным размерам.
Т.е. WindowHeight возвращает высоту всего окна, а InsideHeight - за минусом системных областей (заколовок, скроллы, рамка). Значение InsideHeight можно изменить. Например, если добавить к нему Height области данных, то будет видна еще одна запись.
ЗЫ. А разве если в конструкторе растянуть окно формы, изменить/вернуть любое св-во и сохранить - размеры не запомнятся.
ЗЗЫ. "окно модальное" - это открытое как acDialog? Не лучшее решение для ленточной формы. Зачем?
Промешан
Дата: 11.01.2012 17:49:34
Ukraina
Промешан,

Отредактируй форму как тебе нужно, как подгонишь нужные размеры нажми CTRL+S (запоминание размеров)

А лучше заново создай форму, ты уже значит намудрил с размерами...

У меня в форме нету записей, а если я область Деталей поставлю в 800 пикселей, то у меня каждая запись от следующей будет на 800 пикселей ниже (и выше).

Т.е. WindowHeight возвращает высоту всего окна, а InsideHeight - за минусом системных областей (заколовок, скроллы, рамка). Значение InsideHeight можно изменить. Например, если добавить к нему Height области данных, то будет видна еще одна запись.
ЗЫ. А разве если в конструкторе растянуть окно формы, изменить/вернуть любое св-во и сохранить - размеры не запомнятся.
ЗЗЫ. "окно модальное" - это открытое как acDialog? Не лучшее решение для ленточной формы. Зачем?

Пробовал изменить InsideHeight - не дало результата. Впрочем я это пробовал до того, как узнал, что значение размеров измеряется в twips. попробую еще раз.

ЗЫ. У меня данные в форме отображаются по условию. Приложение ADP с MS SQL.
ЗЗЫ. В настройках формы указал "Модальное окно" - "Да". Затем, что бы не отображалось как вкладки и не были доступны другие формы, пока не закрыто это окно.
Промешан
Дата: 12.01.2012 11:36:18
Промешан,

в общем сделал подчиненную форму.
Эх..
mds_world
Дата: 12.01.2012 12:35:42
Можно на событии открытия ленточной формы написать
Private Sub Form_Open(Cancel As Integer)
    Me.Move Me.WindowLeft, Me.WindowTop, Me.WindowWidth, 10000
End Sub