powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Форма, размеры
7 сообщений из 7, страница 1 из 1
Форма, размеры
    #33050877
Фотография Vw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно форма
старт пазишионс - центр
border style- fixed single
maximazed формы запрещено
и тд.
размеры 600х800
когда стартует то при расширении 600x800
становиться поверх панели задач..
как это исправить ?
Или может есть где алгоритмы маштабирования ?
...
Рейтинг: 0 / 0
Форма, размеры
    #33051155
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй размеры 800*599 и т.д.
...
Рейтинг: 0 / 0
Форма, размеры
    #33051173
Фотография Vw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объясняю проблемму.
Форме запрещено максимайз.
Сама создана для размеров 600х800 экрана
всплытие в центре. Алгоритмов маштабирования нет(если у
кого есть прошу поделится)
Сделано для того чтобы при разных разрешениях экрана (больших)
была в центре.
Но когда меняю расширение на 600х800
она (форма)либо отступает сверху что некрасиво(если уменьшаешь её высоту), либо затирает собой панель задач виндовс , что
тоже не надо.
Ни кто ни чё не подскажет ?
...
Рейтинг: 0 / 0
Форма, размеры
    #33051501
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VwСама создана для размеров 600х800 экрана
всплытие в центре.
Чего? твипов или пикселей, или прочей гадости.
(т.е. ширина меньше высоты.)
VwАлгоритмов маштабирования нет
Скролы что ли, или что делать при изменении?
при макси(развернуть) - Form1.WindowState=vbMaximized
при мини(свернуть) - Form1.WindowState=vbMinimized
Просто - Form1.WindowState=vbNormal
При изменении формы происходит событие Form_Resize

Или хочешь, чтобы при разных размеров контролы изменяли размеры также?
т.е. уменьшаешь высоту формы в 2 раза и все контролы уменьшились в 2 раза по ширине?
Такой пример есть, надо правда поискать.
VwСделано для того чтобы при разных разрешениях экрана (больших)
была в центре.
Но когда меняю расширение на 600х800
она (форма)либо отступает сверху
А что нибудь вроде того
Form1.Width=600
Form1.top=((Screen.Width-Form1.Width)/2)
Аналогично с высотой
Vwлибо затирает собой панель задач виндовс , что
тоже не надо.
Либо Максимизд, либо высота должна быть не более 600*799 пикселей
Вообще 1 пиксель=Screen.TwipPerPixelX твипов, короче равен 15(у меня)

Напоследок.
Расширения :
640*480
800*600
1024*768
Дальше не помню
...
Рейтинг: 0 / 0
Форма, размеры
    #33055558
ZarkOn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
800*600 - это сама форма, но ведь есть еще заголовок формы. плюс как ты заметил есть еще таскбар. Считай сколько занимают таскбар+заголовок и вычитай из 600.
...
Рейтинг: 0 / 0
Форма, размеры
    #33055891
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
при разрешении 800х600(пиксели) форма (в твипах) принимает размеры
(800*15)х(600*15) с шапкой и прочей хренью.

для того, чтобы разместить на форме скажем LAbel её размеры должны быть примерно такими

.width=form.width-(от 0 до 300, разное, и зависит от Скинов Windows; в XP -250)
.height=form.height-(от 300 до 600 без менюшки и от 600 до 1200 с менюшкой)

легче всего в конструкторе растянуть и точка.

вообще делать form.windowstyle=vbMaximized (развернуть, и обрабатывай Resize ФОРМЫ, тем самым подгоняя размеры элементов. скажем элемент 1 = 20% от формы. и .т.д.)

Для общего случая в Resize см. следующее

For Each Control In Me
If Control.Tag <> "not" Then
With Control
.Width = Int(.Width * kx)
.Height = Int(.Height * ky)
.Left = Int(.Left * kx)
.Top = Int(.Top * ky)
If TypeOf(Control) <> "PictureBox" Then .FontSize = Int(.FontSize * kFont)
End With
End If
Next

поясняю.
kx-на сколько растянуть форму (надо записать старое значение, и kx=новое/старое)
аналогично с ky
если элемент типа PictureBox, то его шрифт не изменяется
если надо, чтобы элемент не изменялся вообще, запиши в его таг "not"
...
Рейтинг: 0 / 0
Форма, размеры
    #33573158
YuraSh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получите для VBA EXEL.Форма масштабируется без проблем. Решение взял из сайта. К сожалению , автора поблагодарить не удалось, и сейчас все комплименты ему.
Вставьте в тест формы в VBA вот такое.Здесь установлен масштаб 1. У автора был 0,55. и у него был забит Caption.Пробовал на разных мониторах с разным разрешением. Работает четко. YuraSh

Private Sub UserForm_Initialize()
Dim h As Double
Dim w As Double
Dim ah As Double
Dim aw As Double

With Me
'.Caption = TI
h = .Height
w = .Width
ah = Application.UsableHeight
aw = Application.UsableWidth
'.Width = aw * 0.55
.Width = aw * 1
'.Height = (h * (aw / w)) * 0.55
.Height = (h * (aw / w)) * 1
'Zoom = aw / w * 100# * 0.55
Zoom = aw / w * 100# * 1
.Top = 0#
.Left = (aw - .Width) + 20#
End With

End Sub
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Форма, размеры
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]