![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| ДЫМ |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 6.1.2004 Репутация: 8 Всего: 8 |
При изменении размеров формы (тянем за края) мне надо, чтобы размеры изменялись пропорционально первоначальному соотношению сторон, т. е. если первоначально Width=5, Height=10, размеры были соответственно с соотношением 1/2?
|
|||
|
||||
| DragonFire |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 14.8.2005 Где: Москва Репутация: нет Всего: 9 |
Попробуй в событии FormSize задать такую строчку:
Form.height:=form.width*2; или Form.width:=form.height div 2; |
|||
|
||||
| mntek |
|
|||
![]() freakin_brain ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 15.8.2004 Где: saint-petersburg Репутация: нет Всего: 1 |
только не FormSize, а OnFormResize
|
|||
|
||||
| DragonFire |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 14.8.2005 Где: Москва Репутация: нет Всего: 9 |
Извини, давно не работал с событиями формы VCL, все больше WindowsApi...
|
|||
|
||||
| ДЫМ |
|
||||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 6.1.2004 Репутация: 8 Всего: 8 |
Извини, но прежде чем постить ты хотя бы для интереса попробовал протестировать код. У тебя получается, что в момент изменения размеров ты опять изменяешь размер и процедура вызывается рекурсивно. Вообще-то как я понимаю, надо использовать OnCanResize
Проблема в том, что можно вычислить или ширину относительно высоты или наоборот, но бывает так, что меняется только ширина или высота (скажем тянут только за правый или нижний края), а как узнать, что изменилась только ширина или высота непонятно. Казалось бы, что может быть проще, вставил условие
Ну так давай на WindowsApi, что мешает? Это сообщение отредактировал(а) ДЫМ - 22.9.2005, 01:10 |
||||||||
|
|||||||||
| Yanis |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
Для отлова за какой край изменяют размер формы можно использовать такой код:
|
||||
|
|||||
| Bibimij |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 19.8.2005 Репутация: нет Всего: нет |
Да... Пропорциональность формы - этоконечно хорошо!
|
|||
|
||||
| Prof_2000 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 26.3.2005 Где: Харьков, Украина Репутация: 1 Всего: 1 |
Если edit на всю форму по ширине, то все очень легко. У всех визуальных компонентов есть свойство Anchors(якоря), отвечает за фиксацию краев компонентов относительно краев формы.
Если нет то опять же по событию формы OnResize пропиши зависимости положения компонентов. По изменению положения и размера компонентов никакого события нет, так что рекурсия вызваться не будет. Теперь насчет примера: пусть Edit должен доходит всегда ровно до половины формы. Тогда
Негиперграндиозность текста этого варианта безусловно зависит от количества компонентов. Других способов, вроде, нет, за исключением некоторых компонентов со свойством Center:boolean и компонента TSplitter. --------------------
Pereant qui ante nos nostra dixerunt! (лат.) Да погибнут те, кто раньше нас высказал наши мысли! |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |