Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Динамическое изменение размеров формы

2.9K
20 января 2004 года
al_gl
24 / / 05.01.2004
Решил использовать в программе на VB продукт
RESIZE WIZARD VER 1.0.54 фирмы Seekford
Solunions corp.
Кто использовал эту компоненту - помогите
конкретно.
Судя по характеристикам этой компоненты
- можно изменять размеры формы, и автоматически
изменяются размеры всех окошек на форме с
пропорциональным изменением шрифта.

Вопрос такой: как сделать так, чтобы
сделанные изменения размеров формы сохранились?
Кто может привести пример, т.к. в самой
документации по RESIZE не разобрался до конца.
Приведите пример, кто может, пример
функции ssiResizeWizardCTL1_ControlResizeNotify
эта функция получает управление, когда меняются
размеры формы, а что делать дальше?
Какой надо объявить объект?
Какую команду SET выполнить?
Какую функцию из состава RESIZE затем выполнить?

Чтобы была достигнута цель: пользователь
изменил размеры формы, а при новом вызове
эти размеры сохранились.
478
20 января 2004 года
XtreamAll
279 / / 01.10.2003
Вроде в стандартный набор компонент этот не входит???
Может выложишь его, люди посмотрят, може чего и подскажут...
2.9K
20 января 2004 года
al_gl
24 / / 05.01.2004
Цитата:
Originally posted by XtreamAll
Вроде в стандартный набор компонент этот не входит???
Может выложишь его, люди посмотрят, може чего и подскажут...


Про эту компоненту где-то я читал на форуме,
точно не помню.
Сайт SeekfordSolutions.com/Products/
Серийный для него где-то был, после помещения
компоненты на форму, надо правой мышкой щелкнуть
по ней и ввести затем требуемое.
SEEK-RSWZ-0100-0021

Где-то его советовали использовать,
и действительно - стоящая вещь, поместил
компоненту на форму - и далее после вызова формы
можно изменять размеры формы, и все кнопки и
шрифты изменяются пропорционально.
Кто заинтересовался, может поискать в интернете
или на форумах по слову RESIZE или другие,
есть еще и другие
похожие компоненты других фирм (например,
NANTRONIX) но Resize Wizard показалась более
понятной, там есть документация.
Остался только вопрос - а как же сохранять
новые измененные размеры, т.е. что и как
объявить, чтобы использовать функцию
сохранения из состава Resize Wizardю

266
20 января 2004 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by al_gl
Решил использовать в программе на VB продукт
RESIZE WIZARD VER 1.0.54 фирмы Seekford
Solunions corp.
Кто использовал эту компоненту - помогите
конкретно.
Судя по характеристикам этой компоненты
- можно изменять размеры формы, и автоматически
изменяются размеры всех окошек на форме с
пропорциональным изменением шрифта.

Вопрос такой: как сделать так, чтобы
сделанные изменения размеров формы сохранились?
Кто может привести пример, т.к. в самой
документации по RESIZE не разобрался до конца.
Приведите пример, кто может, пример
функции ssiResizeWizardCTL1_ControlResizeNotify
эта функция получает управление, когда меняются
размеры формы, а что делать дальше?
Какой надо объявить объект?
Какую команду SET выполнить?
Какую функцию из состава RESIZE затем выполнить?

Чтобы была достигнута цель: пользователь
изменил размеры формы, а при новом вызове
эти размеры сохранились.


А почему не хочешь не заморачиваться, а сам написать нужный ресайз, привязавшись к коэфициенту пропорциональности какому-нибудь? По-моему, это менее заморочно. Это относитетьно VB до 6 версии. VB.Net это сам, на автомате поддерживает. С ним можно не париться.

2.9K
20 января 2004 года
al_gl
24 / / 05.01.2004
Цитата:
Originally posted by mhaturov

А почему не хочешь не заморачиваться, а сам написать нужный ресайз, привязавшись к коэфициенту пропорциональности какому-нибудь? По-моему, это менее заморочно. Это относитетьно VB до 6 версии. VB.Net это сам, на автомате поддерживает. С ним можно не париться.


Хотя и пишу на VB6, но в програмее много
разных форм,
и на каждой много кнопок, за всеми не уследишь.
А здесь при разработке форме поместил одну
компоненту на все кнопки сразу (некоторые
кнопки по желанию можно исключить) и проблема
решена добавлением одной функции.
Кроме того пропорциональность изменения шрифта
при изменении размеров формы на всех кнопках.

478
20 января 2004 года
XtreamAll
279 / / 01.10.2003
Посмотрел...
...вещь полезная...

2 mhaturov:
а ты пробовал ресайз просчитывать???
я как то занялся этой проблемой, а потом решил что нету у меня стока времени на красивости...
если не пробовал, попробуй взять какой нибудь коэффициент и "поресайзи" :o (сказанул!!!) форму в разных разрешениях...

2 al_gl:
так тебе надо, чтобы при следующем старте прога запускалась в том виде, в котором ее закрыли???
266
20 января 2004 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by XtreamAll
Посмотрел...
...вещь полезная...

2 mhaturov:
а ты пробовал ресайз просчитывать???
я как то занялся этой проблемой, а потом решил что нету у меня стока времени на красивости...
если не пробовал, попробуй взять какой нибудь коэффициент и "поресайзи" :o (сказанул!!!) форму в разных разрешениях...


Да я всегда так делаю... В принципе, надо несколько раз просчитать, а потом всё гораздо быстрее получается. Часто, если форма несложная, то можно её 1 раз пропорционально отрисовать, просмотреть размеры элементов. выбрать из них базовый (как правило, я беру форму), и вычислить пропорции. А потом по ним всё пересчитывать. А если на 800Х600, например, не влезает всё, вносишь поправки для расширений (легко, кастати, довольно, делается).

478
20 января 2004 года
XtreamAll
279 / / 01.10.2003
...пробовал я этот способ:
если брать две позиции (мин. размер и развернуто на весь экран), то рассчитать - не вопрос...
...а если потягать мышкой (хватаешь за край окна и тянешь), то никакие коэффициенты не помогут...
...мы тута уже это обсуждали(правда найти не могу)...
...если ты нашел способ с этим бороться - колись;)
478
20 января 2004 года
XtreamAll
279 / / 01.10.2003
Тута обсуждали похожую тему, правда сбились немного...:D
2.9K
20 января 2004 года
al_gl
24 / / 05.01.2004
Цитата:
Originally posted by XtreamAll
Тута обсуждали похожую тему, правда сбились немного...:D



Хотелось бы вернуться к нашим баранам.
Кто использовал RESIZE WIZARD и знает как
сохранить настройки измененной формы?
Если знает, то прошу выложить код такого
обработчика.

478
20 января 2004 года
XtreamAll
279 / / 01.10.2003
Цитата:
Originally posted by al_gl


Хотелось бы вернуться к нашим баранам.
Кто использовал RESIZE WIZARD и знает как
сохранить настройки измененной формы?
Если знает, то прошу выложить код такого
обработчика.



Повторюсь:
2 al_gl:
так тебе надо, чтобы при следующем старте прога запускалась в том виде, в котором ее закрыли???

2.9K
20 января 2004 года
al_gl
24 / / 05.01.2004
Цитата:
Originally posted by XtreamAll


Повторюсь:
2 al_gl:
так тебе надо, чтобы при следующем старте прога запускалась в том виде, в котором ее закрыли???



ДА! Конечно.
Пользователь моей программы под свои глаза и под
свой вкус меняет размеры форм, если ему
потребуется, с учетом разрешимости экрана,
а при следующем вызове проги размеры всех
форм и размеры входящих кнопок должны
остаться такими, какими он их сделал при
изменении.
Это ведь стандарт, как я понимаю, возьмите
WORD, измените, а при следующем вызове окно
будет то, которое вы закрыли.

266
20 января 2004 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by XtreamAll
...пробовал я этот способ:
если брать две позиции (мин. размер и развернуто на весь экран), то рассчитать - не вопрос...
...а если потягать мышкой (хватаешь за край окна и тянешь), то никакие коэффициенты не помогут...
...мы тута уже это обсуждали(правда найти не могу)...
...если ты нашел способ с этим бороться - колись;)


Да нет, у меня всё нормально происходит. Можно на этот случай првязываться не к Width, Height и т.п. а к ScaleHeight и т.д. Но мне, лично, хватает простых значений (Height, witdh, top, left). Кстати, коэфициенты при ресайзе я "на лету" просчитываю. Например, чтобы кнопка всегда по центру была:
With CbAct
.Width = me.width/5
.Left = (Me.Width-.Width)/2
.Top = тыры-пыры
If что-то там then
.Height = что-то там/что-то тут
else
.Height = столько-то
endif
End With
Ну и так - для всех элементов. На первый взгляд - громоздко, но когда привыкнешь, будет довольно быстро получаться.

478
20 января 2004 года
XtreamAll
279 / / 01.10.2003
Тут я вижу только один выход (пока во всяком случае):
при закрытии формы (выгрузке) пробегаться по всем контролам и сохранять их значения (Топ, Видз...)
Писать их куда-нибудь, а при открытии -читать...
2.9K
20 января 2004 года
al_gl
24 / / 05.01.2004
Цитата:
Originally posted by XtreamAll
Тут я вижу только один выход (пока во всяком случае):
при закрытии формы (выгрузке) пробегаться по всем контролам и сохранять их значения (Топ, Видз...)
Писать их куда-нибудь, а при открытии -читать...



Это то мне понятно, но ведь это много рутины,
надо все кнопки запомнить и т.д. придется
только этим и заниматься, а ведь есть этот
инструмент, RESIZE WIZARD, кажется он должен
это сделать (всё сохранить, все настройки)
или может я ошибаюсь?

266
20 января 2004 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by al_gl


Это то мне понятно, но ведь это много рутины,
надо все кнопки запомнить и т.д. придется
только этим и заниматься, а ведь есть этот
инструмент, RESIZE WIZARD, кажется он должен
это сделать (всё сохранить, все настройки)
или может я ошибаюсь?


Вопрос. Зачем все контролы? Если размеры контролов привязаны к чему-либо (например, размерам формы), то достаточно сохранить его (её) параметры.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог