Danke, ich habe mit für Bernhards Variante entschieden, da noch weitere Formulare auf die Funktion zugreifen.
Dann solltest du das TImage als Parameter übergeben.
Den beim Zuordnen an das TImage wird eine Kopie des TPNGImage erstellt.
Der Tipp war Gold wert. Danke 👌
Delphi-Quellcode:
StartDlg.LoadImgFromResource('Main', ImageMain);
procedure TStartDlg.LoadImgFromResource(Bezeichner: String; MyImage : TImage);
var
Png: TPngImage;
begin
Png := TPngImage.Create;
try
// DPI 200%
if Screen.PixelsPerInch >= 192 then
Png.LoadFromResourceName(HInstance, Bezeichner + '_200')
// DPI 150%
else if Screen.PixelsPerInch >= 144 then
Png.LoadFromResourceName(HInstance, Bezeichner + '_150')
// DPI 100%
else
Png.LoadFromResourceName(HInstance, Bezeichner + '_100');
MyImage.Picture.Graphic := Png;
finally
Png.Free;
end;
end;