![]() |
|
Модераторы: Snowy, Alexeis, MetalFan |
![]()
|
|
| malor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 632 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
1) Как сделать так, чтобы при растягивании мышью формы не было вот этих пустот?
![]() ![]() У TImage выставлено свойства Stretch/Proportional равными True. 2) Как сделать так, чтобы форма (ну или, что тоже самое, TImage) при запуске программы приводились к размерам изображения? На этапе дизайна выставить AutoSize ?
Это сообщение отредактировал(а) malor - 17.8.2011, 10:40 Присоединённый файл ( Кол-во скачиваний: 4 )
ResizeProject.zip 108,04 Kb |
|||
|
||||
| rodnover |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 7.4.2009 Репутация: нет Всего: 10 |
|
|||
|
||||
| malor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 632 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
>>Image1.Align := alClient
Это у меня уже выставлено. Не действует?.. Delphi XE |
|||
|
||||
| rodnover |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 7.4.2009 Репутация: нет Всего: 10 |
Почту скажи, тестовый проект вышлю
|
|||
|
||||
| malor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 632 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
У тебя пустот нет из-за того, что свойство Proportional выставлено False.
Это сообщение отредактировал(а) malor - 17.8.2011, 10:40 |
|||
|
||||
| malor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 632 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
Почему здесь одно количество пикселей -
![]() а здесь другое - ![]() Как все выглядит: ![]() Сам TImage: ![]()
Что не так? Это сообщение отредактировал(а) malor - 17.8.2011, 22:38 Присоединённый файл ( Кол-во скачиваний: 4 )
ScaleProject.zip 107,30 Kb |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 18 Всего: 484 |
Потому что 640х480 - это размер изображения, а 327х344 - размер формы.
Что касается вопроса, то просто нужно быдерживать соотношение wi/hi=wf/hf - отношение ширины и высоты изображения = отношение ClientWidth/ClientHeight Таким образом, нужно привести формулу к одной неизвестной. Высота и ширина Image1.Picture у тебя есть. Чтобы подогнать размеры формы, нужно выбрать, что подгонять - ширину под высоту или высоту под ширину. Выбрать можно фиксировано, а можно придумать алгоритм, что брать за основу. Фиксировано проще. Ну а дальше выражаешь из формулы вычисляемую величину и устанавливаешь в зависимости от остальных. |
|||
|
||||
| malor |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 632 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
Почему форма не подогналась под размеры содержащегося в TImage изображения? Хомоненко А., "Delphi 7 в подлиннике", 2007, стр. 430: "Свойство AutoSize типа Boolean управляет возможностью автоматического приведения размеров компонента image к размерам содержащегося в нем изображения. Если свойство AutoSize установлено в значение True, то размеры элемента Image приводятся к размерам изображения, если в значение False (по умолчанию), то нет."
|
||||
|
|||||
| Snowy |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 18 Всего: 484 |
А ты вроде как хотел менять размер.
|
||||||||
|
|||||||||
| malor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 632 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
s>>Если ты сделаешь AutoSize у TImage, то она примет размеры строго по изображению.
Но у меня на последнем из скринов как раз и выставлено свойство AutoSize у TImage равным True. s>>А ты вроде как хотел менять размер. Это уже следующий шаг. |
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 1 Всего: 58 |
Для старта подойдет вот это:
|
|||
|
||||
| malor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 632 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
[1]
K>>Для старта подойдет вот это: ![]() Величины ClientWidth и ClientHeight не изменились от операции присвоения. Почему? [2] Если перебросить эти 5 строчек в функцию FormCanResize, то будет так: ![]() ![]() Если выставить "AutoSize = True" у TForm и у TImage, то разве этого не достаточно, чтобы при FormCreate() форма подогналась под размер TImage, а TImage в свою очередь под размер загруженного в него изображения? [3] Если использовать вот такой вариант:
Свойства TImage; ![]() То при запуске программы вид: ![]() Если попробовать прижать мышью заголовок формы и оттащить окно, то сразу станет так: ![]() вот это как раз то, что и хотелось бы получить - именно подобный вид. Но каким образом ? Это сообщение отредактировал(а) malor - 19.8.2011, 18:12 |
|||
|
||||
![]()
|
| Правила форума "Delphi: Звук, графика и видео" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |