Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2015, 16:33   #1
Khad515
Пользователь
 
Регистрация: 11.01.2015
Сообщений: 29
По умолчанию привязка размеров межу image

Такая проблема. Имею 2 image(image1, image2)
image2 имеет включенное свойство transparent.
два image наложены друг на друга
в image1 загружается картинка и image1 получает размеры этой картинки
Код:
if OpenPictureDialog1.Execute then
begin
 Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
end;
Image1.Width := Image1.Picture.Width;
Image1.Height := Image1.Picture.Height;
Все корректно изменяется.
Дальше мне нужно изменить размеры image2 под размеры картинки image1(размеры которой принял image1).Дописуем после кода(который сверху) один из методов записи кода тот что дальше я показую. Тут то и начинаются проблемы. Я пытался изменять размеры так

Код:
Image2.Width := Image1.Width;
Image2.Height := Image1.Height;
и так

Код:
Image2.Width := Image1.Picture.Width;
Image2.Height := Image1.Picture.Height;
Но по сути это одно и тоже. Проблема состоит в том, что визуально image2 не растягивается так как надо(он не заполняет всю область размером с картинку которую загрузил). Но если вывести эти данные на экран, то показует, что image2 принял размеры image1(а image1 имеет размеры картинки). Я не понимаю, что не так. Может есть другие более надежные способы изменить размер image2 под размер картинки в image1

П.С.: пробовал процедуру SetSize - не помогло. Так же использовал ClientWidth и ClientHeight - не помогло. параметры top и left image1 и image2 совпадают

Последний раз редактировалось Khad515; 16.01.2015 в 16:36.
Khad515 вне форума Ответить с цитированием
Старый 16.01.2015, 16:35   #2
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Компонент tBitmap поможет
Код:
Image1.Picture.Bitmap.Width
Код:
Image2.Picture.Bitmap.Width:=Image1.Width;
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]

Последний раз редактировалось newerow1989; 16.01.2015 в 16:42.
newerow1989 вне форума Ответить с цитированием
Старый 16.01.2015, 17:20   #3
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

чему равны свойства autosize, center?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 16.01.2015, 17:20   #4
Khad515
Пользователь
 
Регистрация: 11.01.2015
Сообщений: 29
По умолчанию

Нет, не помогло. Вот какой эфект появляется. Выглядит как будто Image2. не покрывает полностью Image1. Если не изменять размеры image1 все хорошо. Проблема лишь в том, что при загруженной картинке в image1, image2 почему то не может нормально поймать нужные размер. Я уже 4 час сижу бьюсь, пока не доходит почему. Надеюсь на вас.
Изображения
Тип файла: jpg DelphiLoad.jpg (112.4 Кб, 117 просмотров)

Последний раз редактировалось Khad515; 16.01.2015 в 17:25.
Khad515 вне форума Ответить с цитированием
Старый 16.01.2015, 17:26   #5
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

А если одновременно:
Код:
Image2.Picture.Bitmap.Width:=Image1.Width;
Image2.Width:=Image1.Width;
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 16.01.2015, 17:41   #6
Khad515
Пользователь
 
Регистрация: 11.01.2015
Сообщений: 29
По умолчанию

Извеняюсь, забыл написать. Если чисто
Код:
Image2.Picture.Bitmap.Width:=Image1.Width;
то перестает вообще рисовать.
Если же оставить просто
Код:
Image2.Width:=Image1.Width;
без проблем рисует, но так как рисует на image2, а он не покрывает полностью image1.
Обе строчки - то єфект который сверху показал.(в других вариантах либо не рисовало, либо рисовало на области с не увеличенными размерами image2.(то есть не везьде рисовало))
Khad515 вне форума Ответить с цитированием
Старый 16.01.2015, 18:00   #7
Khad515
Пользователь
 
Регистрация: 11.01.2015
Сообщений: 29
По умолчанию

По идее, что бы я смог нормально рисовать на Image2 поверх Image1 мне надо растинуть
Код:
Image2.Picture.Bitmap.Width:=Image1.Width;
и
Код:
Image2.Width:=Image1.Width;
до размеров image1. Но я растягиваю, у меня размер image2 по всем параметрам(в смысле размером) сходится с image1, но визуально image2 не покрывает полностью image1.
Khad515 вне форума Ответить с цитированием
Старый 16.01.2015, 18:02   #8
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Растягивание: Image2.Stretch, равным true
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 16.01.2015, 18:33   #9
Khad515
Пользователь
 
Регистрация: 11.01.2015
Сообщений: 29
По умолчанию

Ничего не изменилось. Еще заметил такое. После того как я загрузил файл - нажал рисовать(эфект тот же что и всегда не тот что надо), я прокрутил к другому месту изображения и еще раз повторил функцию рисовать(там линия paint типо). Что произошло.. Image2 сдвинулся по top и left(хотя на самом деле они не поменялись). Тоесть изменилась зона рисования image2(проблема в том, что image2 не принимает размер image1, почему не знаю, код правильный))
Khad515 вне форума Ответить с цитированием
Старый 16.01.2015, 19:58   #10
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

пусть горит в аду тот, кто учит школоту рисовать на TImage!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
разделить слово межу ":" scroyler Общие вопросы Delphi 3 21.03.2013 18:03
Изменение размеров компонента Image Don Karleone Общие вопросы Delphi 19 14.03.2011 22:26
Изменение размеров Image Sheva_ Помощь студентам 7 17.01.2011 11:26
EPNGMissingMultipleIDAT. This PNG Image is invalid because it has missing image parts kardinal94 Общие вопросы Delphi 0 08.10.2010 20:31
Вопрос по Image (скачанная картинка не хочет выводиться в Image) Radnor Мультимедиа в Delphi 2 06.07.2009 02:20