Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как изменить изображение в компоненте TImage в Delphi: переключение между активным и неактивным состоянием

Delphi , Графика и Игры , Изображения

Вопрос пользователя заключается в необходимости изменить изображение, загруженное в компонент Image1, с одного (например, 1active.png) на другое (1inactive.png) и обратно, путём нажатия на сам компонент Image1. Давайте рассмотрим, как это можно реализовать в среде разработки Delphi.

Решение проблемы

Для начала необходимо создать булеву переменную, которая будет отслеживать текущее состояние изображения. Затем, в обработчике события OnClick компонента TImage, необходимо изменить состояние переменной и соответственно загрузить соответствующее изображение.

Шаги реализации:

  1. Создание булевой переменной fImageActive в приватном разделе формы:
private
  fImageActive: Boolean;
  1. Добавление обработчика события OnClick для компонента TImage с кодом для переключения изображений:
procedure TForm1.Image1Click(Sender: TObject);
begin
  fImageActive := not fImageActive;
  if fImageActive then
    Image1.Picture.LoadFromFile('1active.png')
  else
    Image1.Picture.LoadFromFile('1inactive.png');
end;
  1. Загрузка начального изображения в свойство Picture компонента TImage (для начала работы с активным изображением):
Image1.Picture.LoadFromFile('1active.png');
  1. Добавление кода в обработчик события OnCreate формы для установки начального состояния переменной fImageActive в true:
procedure TForm1.FormCreate(Sender: TObject);
begin
  fImageActive := True;
end;

Альтернативный способ: использование ресурсов

Если вы не хотите распространять изображения вместе с вашим приложением, можно включить их в ресурсы проекта:

  • Добавить изображения в проект через меню "Project | Resources..." и назначить им имена, например, PngImage_Active и PngImage_Inactive.
  • Использовать процедуру LoadImgFromPngResource для загрузки соответствующего изображения из ресурсов:
procedure LoadImgFromPngResource(const AResName: string; DestImage: TImage);
var
  png: TPngImage;
begin
  png := TPngImage.Create;
  try
    png.LoadFromResourceName(HInstance, AResName);
    DestImage.Picture.Assign(png);
  finally
    png.Free;
  end;
end;
  • В обработчике OnClick компонента TImage использовать LoadImgFromPngResource для загрузки нужного изображения, а также установить или обновить значение свойства Hint для отслеживания текущего состояния изображения.

Эти шаги позволят вам реализовать функционал переключения изображений в компоненте TImage в зависимости от его состояния (активного или неактивного) при нажатии на него.

Создано по материалам из источника по ссылке.

Вопрос пользователя связан с изменением изображения в компоненте TImage в Delphi при переходе между активным и неактивным состоянием.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Изображения ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-03-11 10:41:05/0.0035371780395508/0