Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> глюк TImage, пропорциональное изменение размера фотки 
V
    Опции темы
Winprogrammer
Дата 9.1.2007, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 23.3.2006
Где: ::Россия.РСО-Алан ия.Владикавка

Репутация: нет
Всего: нет



Доброго времени суток.

Создаю динамически TImage и ставлю Proportional:=true. При изменении размера в рантайм(юзер изменяет положение и размеры с помощью моей компоненты) идет пропорциональное изменение размера фотки, а компонент timage остается таким, каким его оставил юзер. Нужно чтобы он(TImage) был таких же размеров, как и картинка в нём.

Заранее спасибо.
--------------------
Я не понял Вашего вопроса, но я Вам на него отвечу…-----------
Uploading файлов без гемороя - это просто!!!
Winprogrammer.ifolder.ru
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
VICTAR
Дата 9.1.2007, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 37
Всего: 80



У TImage есть глюк при увеличении размеров в рантайм. Решается заданием максимальных размеров при создании компонента. Может в этом дело?
PM MAIL   Вверх
Sunvas
Дата 9.1.2007, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 28
Всего: 89



Winprogrammer, проблемма не совсем ясна. Но все же...

Цитата(Winprogrammer @  9.1.2007,  20:32 Найти цитируемый пост)
 Нужно чтобы он(TImage) был таких же размеров, как и картинка в нём.

Код

image1.picture.width 
image1.picture.height



--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Winprogrammer
Дата 10.1.2007, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 23.3.2006
Где: ::Россия.РСО-Алан ия.Владикавка

Репутация: нет
Всего: нет



Цитата(VICTAR @ 9.1.2007,  20:57)
У TImage есть глюк при увеличении размеров в рантайм. Решается заданием максимальных размеров при создании компонента. Может в этом дело?

Я не нашел таких свойств у имажа.

Добавлено @ 10:08 
Цитата(Sunvas @ 9.1.2007,  21:27)
Winprogrammer, проблемма не совсем ясна. Но все же...

Я пишу дизайнер конвертов с полной возможностью плагинов: добавление новых шаблонов пользователем, добавление новых инструментов. С унструментами я делаю так: это отдельные .bpl файлы, и при создании юзером инструмента на шаблоне я создаю TImage и в него подгружаю TBimap возвращаемый процедурой создания инструмента. Для этого и нужно пропорциональное изменение имажа. Что бы юзер не смущался и в связи с этим возникает проблема печати. Я беру все канвасы и копирую на один TBitmap. А т.к. имажы бываут растянуты, то при печати они приобретают растянутую форму. =(
--------------------
Я не понял Вашего вопроса, но я Вам на него отвечу…-----------
Uploading файлов без гемороя - это просто!!!
Winprogrammer.ifolder.ru
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Sunvas
Дата 10.1.2007, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 28
Всего: 89



Цитата(Winprogrammer @  10.1.2007,  10:02 Найти цитируемый пост)
А т.к. имажы бываут растянуты,

Эт почему они растянуты?? Может свойство  Stretch включил?


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Winprogrammer
Дата 10.1.2007, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 23.3.2006
Где: ::Россия.РСО-Алан ия.Владикавка

Репутация: нет
Всего: нет



Цитата(Sunvas @ 10.1.2007,  14:25)
Эт почему они растянуты?? Может свойство  Stretch включил?

Нет. Не в том смысле, что растянуты сами картинки. У меня включено Proportional и на Stretch не реагирует. Растянуты сами компоненты. Нужно, чтобы компонент TImage был таких же размеров, что и картинка внутри.
--------------------
Я не понял Вашего вопроса, но я Вам на него отвечу…-----------
Uploading файлов без гемороя - это просто!!!
Winprogrammer.ifolder.ru
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Sunvas
Дата 10.1.2007, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 28
Всего: 89



Цитата(Winprogrammer @  10.1.2007,  19:39 Найти цитируемый пост)
Нужно, чтобы компонент TImage был таких же размеров, что и картинка внутри.

Чем не подходит?
Цитата(Sunvas @  9.1.2007,  21:27 Найти цитируемый пост)
image1.picture.width  
image1.picture.height




--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Winprogrammer
Дата 10.1.2007, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 23.3.2006
Где: ::Россия.РСО-Алан ия.Владикавка

Репутация: нет
Всего: нет



Цитата(Sunvas @ 10.1.2007,  20:09)
Чем не подходит?
Цитата(Sunvas @  9.1.2007,  21:27 Найти цитируемый пост)
image1.picture.width  
image1.picture.height

Ну так такие операции делают TImage размером с реальную картинку =(
--------------------
Я не понял Вашего вопроса, но я Вам на него отвечу…-----------
Uploading файлов без гемороя - это просто!!!
Winprogrammer.ifolder.ru
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Winprogrammer
Дата 10.1.2007, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 23.3.2006
Где: ::Россия.РСО-Алан ия.Владикавка

Репутация: нет
Всего: нет



Я наверное неправильно выразился.

На форме лежит компонента для изменения размера контрола в RunTime. Пользователь может изменять размеры и положение контрола. Если контрол TImage, то при изменении размера картинка внутри TImage изменяется пропорционально (Proportional:=true), а размер самого контрола остаётся таким, каким его оставил юзер. Мне нужно что бы размер контрола был таким же как и отмасштабированная картинка в нём.
--------------------
Я не понял Вашего вопроса, но я Вам на него отвечу…-----------
Uploading файлов без гемороя - это просто!!!
Winprogrammer.ifolder.ru
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
former
Дата 10.1.2007, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 5
Всего: 17



Цитата(Winprogrammer @  10.1.2007,  21:01 Найти цитируемый пост)
На форме лежит компонента для изменения размера контрола в RunTime. Пользователь может изменять размеры и положение контрола. Если контрол TImage, то при изменении размера картинка внутри TImage изменяется пропорционально (Proportional:=true), а размер самого контрола остаётся таким, каким его оставил юзер. Мне нужно что бы размер контрола был таким же как и отмасштабированная картинка в нём.


Насколько я понял тебе нужно это: Прапорциональное изменение изображения


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Winprogrammer
Дата 11.1.2007, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 23.3.2006
Где: ::Россия.РСО-Алан ия.Владикавка

Репутация: нет
Всего: нет



Нет. Этой библиотекой я пользоваться не буду.
Придется писать ресайз вручную. smile 
А как к TImage прилепить событие OnResize?
--------------------
Я не понял Вашего вопроса, но я Вам на него отвечу…-----------
Uploading файлов без гемороя - это просто!!!
Winprogrammer.ifolder.ru
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Sunvas
Дата 11.1.2007, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 28
Всего: 89



Цитата(Winprogrammer @  11.1.2007,  09:49 Найти цитируемый пост)
А как к TImage прилепить событие OnResize?

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


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
VICTAR
Дата 11.1.2007, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 37
Всего: 80



Может пригодиться. Подгонка размеров TImage под изображение при Proportional:=true
(код взят из ExtСtrls->function TImage.DestRect: TRect;)
Код

procedure TForm1.Button1Click(Sender: TObject);
var
  w, h, cw, ch: Integer;
  xyaspect: Double;
begin
  w := Image1.Picture.Width;
  h := Image1.Picture.Height;
  cw := Image1.Width;
  ch := Image1.Height;
      xyaspect := w / h;
      if w > h then
      begin
        w := cw;
        h := Trunc(cw / xyaspect);
        if h > ch then  // woops, too big
        begin
          h := ch;
          w := Trunc(ch * xyaspect);
        end;
      end
      else
      begin
        h := ch;
        w := Trunc(ch * xyaspect);
        if w > cw then  // woops, too big
        begin
          w := cw;
          h := Trunc(cw / xyaspect);
        end;
      end;
  Image1.Width:=w;
  Image1.Height:=h;
end;

PM MAIL   Вверх
Winprogrammer
Дата 11.1.2007, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 23.3.2006
Где: ::Россия.РСО-Алан ия.Владикавка

Репутация: нет
Всего: нет



Цитата(VICTAR @ 11.1.2007,  12:45)
Может пригодиться.

Благодарю!!!

Все прекрасно работает!!!! smile 

Повысил бы репутацию, если бы было побольше постов!

Это сообщение отредактировал(а) Winprogrammer - 11.1.2007, 20:29
--------------------
Я не понял Вашего вопроса, но я Вам на него отвечу…-----------
Uploading файлов без гемороя - это просто!!!
Winprogrammer.ifolder.ru
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0588 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.