Я хочу изменения изображения загруженным в image1 - от одного называется 1active.png на второй называется 1inactive.png и наоборот , нажав на компонент Image1.Изменение фотографии, нажав на компоненте TImage - Delphi
Есть ли способ сделать это?
Я хочу изменения изображения загруженным в image1 - от одного называется 1active.png на второй называется 1inactive.png и наоборот , нажав на компонент Image1.Изменение фотографии, нажав на компоненте TImage - Delphi
Есть ли способ сделать это?
ингредиенты:
1) Создайте булевскую переменную в частном разделе объявления формы. В этом примере вызовите эту переменную fImageActive.
private
fImageActive : boolean;
2) От дизайнера форм, падение (или выберите существующий) TImage компонент на форме и выберите событие OnClick и дважды нажмите, чтобы перейти в редактирование. Затем добавьте следующий код:
fImageActive := not fImageActive;
if fImageActive then
Image1.Picture.LoadFromFile('1active.png')
else
Image1.Picture.LoadFromFile('1inactive.png')
3) Из вида конструктора, найдите свойство изображения и нажмите кнопку с многоточием, чтобы загрузить файл 1active.png для стартеров.
4) Нажмите на форму, найти мероприятие под названием «OnCreate», двойной щелчок и добавьте следующий код (это установит начальное состояние):
fImageActive := true;
Вам необходимо загрузить оба изображения в файл ресурсов вашего проекта, а во время выполнения вы можете прочитать фотографии из файла ресурсов и загрузить их в расписание OnClick. Версия Delphi настоящее время я использую (6) не имеет встроенную поддержку для PNG файлов, но я думаю, что последний вариант сделать
Я предполагаю, что вы используете D2009, как вы может загрузить файл PNG в Image1.
Если вы не хотите распространять свои изображения вместе с приложением (как решение skamradt подразумевает), вы должны включить их в качестве ресурсов:
Добавить PNG в ваш проект: меню Использование "Project | Ресурсы. .. "и добавьте файлы.
Имя их соответствующим образом, чтобы получить что-то вроде:
1active.png RCData PngImage_Active
1inactive.png RCData PngImage_Inactive
В Вашем Click случае, вам понадобится индикатор состояния, чтобы узнать, какой из них для отображения (например, skamradt).
Я использовал Image1.hint, чтобы указать, какое изображение загружено (быстрое и грязное, для демонстрационной цели).
Используйте LoadImgFromPngResource процедурный ниже, чтобы загрузить соответствующий PNG изображение:
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;
procedure TForm4.Image1Click(Sender: TObject);
begin
if Image1.Hint <> 'Active' then
begin
LoadImgFromPngResource('PngImage_Active', Image1);
Image1.Hint := 'Active';
end
else
begin
LoadImgFromPngResource('PngImage_Inactive', Image1);
Image1.Hint := 'Inactive';
end;
end;
bBuilt поддержка PNG не была введена до Delphi 2009. –
Это для дополнительного ввода Mason – Pascal