Форум программистов, компьютерный форум, киберфорум
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/34: Рейтинг темы: голосов - 34, средняя оценка - 4.59
 Аватар для Альма
13 / 10 / 4
Регистрация: 25.11.2010
Сообщений: 358
Записей в блоге: 1

Увеличение/уменьшение изображения

07.06.2013, 11:31. Показов 6562. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать, чтобы при первом щелчке картинка увеличивалась, а при повторном - уменьшалась? И при этом всегда оставалась на переднем плане. При использовании
Delphi
1
(Sender as TImageControl).BringToFront;
выдает ошибку Invalid class typecast.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.06.2013, 11:31
Ответы с готовыми решениями:

Увеличение/уменьшение картинки
Ребята помогите !Срочно нада на завтра исходник програми !Которая *Увеличивает картинку и уменшает ***

увеличение изображения
Ребят привет.....помогите решить небольшую проблемку...??? как реализовать увеличение изображения при наведении мыши, изображения...

Увеличение изображения
Ребят привет......Никто не поможет решить небольшую проблемку...??? У меня кароч изображение на TImage который находится на Scrollbox...

14
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33187 / 21484 / 8232
Регистрация: 22.10.2011
Сообщений: 36,859
Записей в блоге: 12
07.06.2013, 11:33
Какой контрол лежит на форме, TImageControl или просто TImage? Если TImageControl - то код будет прекрасно работать.
0
 Аватар для Альма
13 / 10 / 4
Регистрация: 25.11.2010
Сообщений: 358
Записей в блоге: 1
07.06.2013, 11:34  [ТС]
Цитата Сообщение от UI Посмотреть сообщение
Какой контрол лежит на форме, TImageControl или просто TImage? Если TImageControl - то код будет прекрасно работать.
Просто TImage.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33187 / 21484 / 8232
Регистрация: 22.10.2011
Сообщений: 36,859
Записей в блоге: 12
07.06.2013, 11:36
Так значит, и кастовать надо к TImage, а не к TImageControl:
Delphi
1
(Sender as TImage).BringToFront;
0
 Аватар для Альма
13 / 10 / 4
Регистрация: 25.11.2010
Сообщений: 358
Записей в блоге: 1
07.06.2013, 11:48  [ТС]
UI, все равно тоже самое.. Попробую с ImageControl

Добавлено через 5 минут
Ошибка не уходит
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33187 / 21484 / 8232
Регистрация: 22.10.2011
Сообщений: 36,859
Записей в блоге: 12
07.06.2013, 11:48
Покажи скрин ошибки, на котором видно и сам код тоже. Потому что ничего "то же самое" не происходит:



, да и в рантайме тоже все в порядке:

0
 Аватар для Альма
13 / 10 / 4
Регистрация: 25.11.2010
Сообщений: 358
Записей в блоге: 1
07.06.2013, 12:06  [ТС]
Вот
Миниатюры
Увеличение/уменьшение изображения  
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33187 / 21484 / 8232
Регистрация: 22.10.2011
Сообщений: 36,859
Записей в блоге: 12
07.06.2013, 12:08
CornerButton - это что за компонент? Почему он кастуется к TImage? Делай cast и перемещение в начало Z-буфера по нажатию на Image1, а не на какой-то CornerButton... Или, если так уж надо по нажатию Button - то указывай явно, какой компонент перенести выше всех:

Delphi
1
2
3
4
5
6
with Image1 do
begin
   BringToFront;
   Height := 360;
   Width := 470;
end;
0
 Аватар для Альма
13 / 10 / 4
Регистрация: 25.11.2010
Сообщений: 358
Записей в блоге: 1
07.06.2013, 12:18  [ТС]
CornerButton - это кнопка с доп. возможностями стиля в FireMonkey

По нажатию на Image работает, спасибо)
А как сделать, чтоб по повторному нажатию картинка уменьшалась обратно?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33187 / 21484 / 8232
Регистрация: 22.10.2011
Сообщений: 36,859
Записей в блоге: 12
07.06.2013, 12:26
Изменяй Tag своего Image1:
Delphi
1
2
3
4
5
6
7
8
9
10
procedure TForm1.Image1Click(Sender: TObject);
begin
  with Sender as TImage do
  begin
    BringToFront;
    Tag := 1 - Tag;
    Width := Tag * 190 + 170;
    Height := Tag * 235 + 235;
  end;
end;
, изначально Tag должен быть = 0, но это и так выставляется автоматически.
1
3 / 3 / 2
Регистрация: 22.11.2012
Сообщений: 25
22.06.2013, 23:13
В свое время долго искал способ увеличения.
Вот на таком остановился.

Delphi
1
2
3
4
5
6
7
8
9
Image1.Proportional := True;
Image1.Stretch:=false;
Image1.autosize:=true;
Image1.autosize:=false;
Image1.Stretch:=true;
image1.width:=image10.width+5;
image1.height:=image10.height+5;
image1.top:=image10.top-5;
image1.Left:=image10.Left-4;
Последние 2 строчки нужны для того, чтобы имейдж увеличивался ровно из середины
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33187 / 21484 / 8232
Регистрация: 22.10.2011
Сообщений: 36,859
Записей в блоге: 12
22.06.2013, 23:18
@Embri, у TImage в FireMonkey нет этих свойств (знаю, что именно FMX, потому что все темы от Альма - о нем)
0
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 1
25.05.2016, 21:43
Добрый день, пробовала всё, что здесь написано, но не помогает. Точнее, работает не так как мне нужно - просто обрезает края изображения под указанное кол-во пикселей, а не уменьшает сам масштаб картинки.
Есть ли способ уменьшить именно масштаб изображения, а не размер области Image? Желательно подробно, поскольку я только начала изучать Delphi и плохо в нём ориентируюсь (вообще большие проблемы с информатикой)

Добавлено через 10 минут
А, спасибо, уже не надо, нашла способ. Прошу прощения за беспокойство.
Если кому-то надо:
Delphi
1
2
3
4
5
procedure TForm1.Image2Click(Sender: TObject);
begin
Image2.Height:=Round(Image2.Height-30);
Image2.Width:=Round(Image2.Width-30);
end;
0
 Аватар для BOGG ART
592 / 459 / 147
Регистрация: 09.12.2013
Сообщений: 2,385
Записей в блоге: 2
25.05.2016, 21:54
Строго говоря это не "масштаб", это размеры компонента. Round вам не нужен. Image2 тоже:
Delphi
1
2
3
4
5
6
7
8
9
10
Procedure TForm1.Image_ChangeSize_Dec30(Sender: TObject);
Begin
If Sender=Nil Then Exit;
If Not (Sender Is TImage) Then Exit;
With TImage(Sender) Do
      Begin
      Height:=Height-30;
      Width:=Width-30;
      End;
End;
И назначаете этот обработчик как требуется или просто вызывайте передавая нужный Image.

И ещё, у TImage есть Boolean свойства: Stretch, Proportional, Center.
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
27.05.2016, 19:41
Э нет, второй имидж тут очень даже нужен. Многократное изменение размеров одного и того же имиджа приведет к деградации имиджа. Поэтому хранить надо исходное изображение отдельно, а на экран выводить уже измененную копию.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.05.2016, 19:41
Помогаю со студенческими работами здесь

Работа с Image, TrackBar. Увеличение изображения как в картах Google
Здравствуйте. Прошу помощи в распутывании проблемы с отображением Image, trackbar. Есть Iamge , TrackBar его увеличивает и...

Увеличение изображения без потери качества
Здравия всем! Все мы видели фильмы про нереальных ITшников и кулхацкеров секретных гос. служб доблестных США!!! Они могут всё, даже...

Уменьшение размеров картинки
Здравствуйте, подскажите способы сжатия расширения изображения формата bmp,jpeg в делфи с минимальной потерей качества,какие операторы за...

Уменьшение числа цветов в изображении
мне нужно уменьшить число цветов в изображении... кто может объяснить вот этот код? например изображение состоит из 8000 цветов, нужно...

Уменьшение числа при нажатии на кнопку
Знаю что было over9000 раз, но подскажите пожалуйста код, чтобы число Label4 уменьшалось на 1 при нажатии. Добавлено через 2 часа 23...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru