Je suppose que vous utilisez D2009 comme vous peut charger un fichier png dans Image1.
Si vous ne voulez pas distribuer vos images avec votre application (comme solution de skamradt implique), vous devez les inclure comme ressources:
Ajouter le .png à votre projet: Utilisez le menu "projet | Ressources. .. "et ajoutez les fichiers.
Nom en conséquence pour obtenir quelque chose comme:
1active.png RCData PngImage_Active
1inactive.png RCData PngImage_Inactive
Dans votre événement Click, vous aurez besoin d'un indicateur d'état de savoir lequel à afficher (comme skamradt).
J'ai utilisé Image1.hint pour indiquer quelle image est chargée (rapide et sale, à des fins de démonstration).
Utilisez le proc LoadImgFromPngResource ci-dessous pour charger l'image .png appropriée:
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 en charge PNG n'a pas été introduit jusqu'à Delphi 2009. Ce –
est pour l'entrée supplémentaire Mason – Pascal