Изменение размеров элементов управления вместе с формой

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
zusicks438
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 26.12.2008 (Пт) 20:16

Изменение размеров элементов управления вместе с формой

Сообщение zusicks438 » 12.02.2010 (Пт) 19:58

Вот вопрос.

Надо, чтобы на экране с любым разрешением программа отображалась на весь экран. Самое простое - сделать это с помощью полного разворачивания формы на все окно. Естественно, должны меняться размеры элементов управления.

Можно это сделать как-нибудь просто (хоть грубо, но просто), или надо узнавать разрешение и пересчитывать координаты?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16489
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Изменение размеров элементов управления вместе с формой

Сообщение Хакер » 12.02.2010 (Пт) 20:02

Бред какой-то.

Узнавать разрешение не надо. Пересчитывать — надо, если только не алигнинг у контроллов.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

zusicks438
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 26.12.2008 (Пт) 20:16

Re: Изменение размеров элементов управления вместе с формой

Сообщение zusicks438 » 12.02.2010 (Пт) 20:10

Что? Не очень понял. И как это сделать без известного разрешения?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16489
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Изменение размеров элементов управления вместе с формой

Сообщение Хакер » 12.02.2010 (Пт) 20:13

Понимаешь... Ну хорошо, сейчас путём рассуждения я тебя приведу к выводу, насколько глупы твои замысли.

Первый по ходу пути вопрос: Зачем тебе необходимо знать разрешение экрана?

(Отвечать четко и внятно)
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

zusicks438
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 26.12.2008 (Пт) 20:16

Re: Изменение размеров элементов управления вместе с формой

Сообщение zusicks438 » 12.02.2010 (Пт) 20:16

Хорошо. Мне нужно разрешение экрана, чтобы знать, насколько больше размеры формы по отношению к исходному. Дабы затем добавить к элементам управления столько, сколько нужно.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16489
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Изменение размеров элементов управления вместе с формой

Сообщение Хакер » 12.02.2010 (Пт) 20:24

Было 800×600, стало 1024×780.

Что обладание конкретно этими цифрами тебе бы дало?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

zusicks438
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 26.12.2008 (Пт) 20:16

Re: Изменение размеров элементов управления вместе с формой

Сообщение zusicks438 » 12.02.2010 (Пт) 20:27

Эмм...а вот это хороший вопрос...очень хороший :) Ну там вычислить сколько надо добавлять при изменении разрешения...в натуре идиотизм :D

Но все равно не понимаю. Так что хотелось бы более прозрачной подсказки (не надо код, нужен принцип).

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16489
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Изменение размеров элементов управления вместе с формой

Сообщение Хакер » 12.02.2010 (Пт) 20:43

Я тебе дал два конкретных случая с числами. Как ты собрался по этим числам узнавать, сколько надо прибавить?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Изменение размеров элементов управления вместе с формой

Сообщение arthur2 » 12.02.2010 (Пт) 20:44

Хакер писал(а):Было 800×600, стало 1024×780.

Что обладание конкретно этими цифрами тебе бы дало?
скажем, я разрабатываю программу при разрешении 800×600 и хочу, чтобы контролы были более-менее одинакового относительного размера (относительно экрана, разумеется) при любых разрешениях.

В таком случае, я беру один из своих контролов за эталон, узнаю отношение его ширины к ширине экрана и записываю эту константу. То же и с высотой. Теперь, узнав, что расширение не совпадает с тем, которое у меня было при разработке, просто добиваюсь, чтобы отношение координат всех контролов к новым размерам экрана осталось прежним - элементарное уравнение на решение пропорции :)
Артур
 
   

zusicks438
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 26.12.2008 (Пт) 20:16

Re: Изменение размеров элементов управления вместе с формой

Сообщение zusicks438 » 12.02.2010 (Пт) 20:45

Вот, короче arthur2 все сказал за меня, просто я не знал, как это сказать. Не очень я программист опытный.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16489
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Изменение размеров элементов управления вместе с формой

Сообщение Хакер » 12.02.2010 (Пт) 20:49

Артур, вопрос был не тебе.

Что касается относительных пропорций, то тут вообще отдельная тема и надо учить людей уму разуму. К счастью, в VB всё уже сделано за нас, поэтому просто рисуй формы и они будут работать так, как правильно. (Ключевые слова для размылений (только тебе!): твипы, масштаб экранных шрифтов, ppi)
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16489
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Изменение размеров элементов управления вместе с формой

Сообщение Хакер » 12.02.2010 (Пт) 20:55

Вот, короче arthur2 все сказал за меня, просто я не знал, как это сказать.

Проблемы с выражением мыслей?

Артур об относительном измении размеров, ты — об абсолютном. Не так ли?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Изменение размеров элементов управления вместе с формой

Сообщение arthur2 » 12.02.2010 (Пт) 20:59

Хакер писал(а):Артур, вопрос был не тебе

пардон :oops:
Артур
 
   

zusicks438
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 26.12.2008 (Пт) 20:16

Re: Изменение размеров элементов управления вместе с формой

Сообщение zusicks438 » 13.02.2010 (Сб) 19:25

Твипы, ppi...а что такое ppi? :?:

Так...блин, у меня действительно проблема с изъяснением. Короче, вот мне надо чтоб форма на любом экране выглядела одинаково, причем изменяться должны размеры ВСЕХ элементов управления. Т.е. открываете Вы Блокнот - и текстовое поле везде выглядит одинаково растянутым на всю форму. Только мне еще надо чтоб кнопочки растягивались, ну смысл Вы поняли наверно.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16489
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Изменение размеров элементов управления вместе с формой

Сообщение Хакер » 13.02.2010 (Сб) 19:39

Не надо этого.

Окно должно одинаково выглядеть на всех экранах с одинаковым масштабом шрифтов. Это выполняется. Всё.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

zusicks438
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 26.12.2008 (Пт) 20:16

Re: Изменение размеров элементов управления вместе с формой

Сообщение zusicks438 » 13.02.2010 (Сб) 20:10

Не понимаю...

Что за масштаб шрифтов, это где-то указывается? Форма-то конструируется в статусе "размер стока на стока", а если она развернута на весь экран, то элементы остаются на месте а справа и внизу пустой кусок формы.

zusicks438
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 26.12.2008 (Пт) 20:16

Re: Изменение размеров элементов управления вместе с формой

Сообщение zusicks438 » 13.02.2010 (Сб) 20:10

Или там есть какой-то другой способ визуального редактирования формы?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16489
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Изменение размеров элементов управления вместе с формой

Сообщение Хакер » 13.02.2010 (Сб) 20:15

Что за масштаб шрифтов, это где-то указывается?

ppi_change_combo.PNG
ppi_change_combo.PNG (11.2 Кб) Просмотров: 3069


а если она развернута на весь экран, то элементы остаются на месте а справа и внизу пустой кусок формы.

Ну так двигай элементы.
Только, заранее предвкушая следующий вопрос, повторяю свой: и зачем тебе знать разрешение экрана?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

zusicks438
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 26.12.2008 (Пт) 20:16

Re: Изменение размеров элементов управления вместе с формой

Сообщение zusicks438 » 13.02.2010 (Сб) 20:17

Хорошо, как узнать, на сколько надо изменять размер?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16489
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Изменение размеров элементов управления вместе с формой

Сообщение Хакер » 13.02.2010 (Сб) 20:18

Насколько изменился клиентский размер окна, на столько и надо.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

zusicks438
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 26.12.2008 (Пт) 20:16

Re: Изменение размеров элементов управления вместе с формой

Сообщение zusicks438 » 13.02.2010 (Сб) 20:23

Наверно, Вы хотите объяснить мне все как студенту факультета программирования, но это не так :) Ибо я любитель так сказать...

Так что прошу как-то попонятнее объяснить если можно: Откуда и что брать.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16489
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Изменение размеров элементов управления вместе с формой

Сообщение Хакер » 13.02.2010 (Сб) 20:26

Ясно, человек думать не хочет. Я пасс.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Изменение размеров элементов управления вместе с формой

Сообщение iGrok » 13.02.2010 (Сб) 20:46

А тебе свойства ScaleWidth, ScaleHeight у формы на что даны?
label:
cli
jmp label

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4158
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Изменение размеров элементов управления вместе с формой

Сообщение Mikle » 14.02.2010 (Вс) 16:09

zusicks438
При разворачивании формы на весь экран бордюр формы и её заголовок ширину не меняют, то есть оставшаяся часть формы, где ты можешь расположить контролы (она называется клиентской), меняет свой размер не пропорцилнально размерам экрана. Вместо того, чтобы дальше спрашивать "а как узнать размер заголовка?", лучше сразу спроси, как узнать размер клиентской части. И iGrok уже ответил на этот вопрос.
Но посмотри на тот жк блокнот - у него не все контролы изменяют размер пропорционально клиентской части, скроллбары меняют длину, но не ширину. Посмотри какую-нибудь другую программу, где есть кнопки, обрати внимание, что они тоже, как правило, размер не меняют. Если менять их размер, то и размер шрифта, это выглядит некрасиво. А размер шрифта текстбокса в том же блокноте не меняется, хотя меняется размер.
То есть сначала продумай, как должны менять свои размер и позицию контролы, посмотри, как это делается у других.

zusicks438
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 26.12.2008 (Пт) 20:16

Re: Изменение размеров элементов управления вместе с формой

Сообщение zusicks438 » 14.02.2010 (Вс) 19:09

Ясно, человек думать не хочет. Я пасс.


Или кто-то не может объяснять?

Mikle, дошло, конечно же есть ScaleWidth и ScaleHeight. Спасибо.

zusicks438
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 26.12.2008 (Пт) 20:16

Re: Изменение размеров элементов управления вместе с формой

Сообщение zusicks438 » 17.02.2010 (Ср) 20:40

Сделал. При событии Activate() формы проверяются ScaleHeight и ScaleWidth, вычисляется разница с исходным размером и добавляется к высоте и ширине ListBox'a, все остальное остается на месте, все красиво и функционально.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 19

    TopList  
cron