Es ist so, daß ich durchsichtige (transparente) Bildchen benötige,
da ihr Ausschnitt keine rechteckigen Ränder zuläßt.
Im PNG Format benötige ich zusätzliche Fremd-Komponenten wie Graph64,
etc.
PngImagelist ist trotzdem einen 2. Blick wert, da diese kleine Lib u.a. direkt als ImageList-Ersatz verwendet werden kann. Die Qualität der Darstellung/ des Zeichnens ist augenscheinlich besser als die der Standard-Komponente, weil sie besser mit der Semitranzparenz umgeht (Du kennst sicher die "Ausfransungen" an den Grafik-Rändern?). Die Lib ist Open Source, hat gerade 4 Komponenten und unterstützt alle relevanten Delphi-Versionen. Geradezu ideal für solche Einsatzfälle wie in Deinem Screenshot zu sehen.
Meine Frage, gibt es einen Trick, ICOs aus einer Delphi-RES Datei
zu laden, die dann auch in Größe größer 32x32 Pixeln angezeigt werden
können. In der RES Datei sind sie nämlich größer als besagte 32x32.
Du kannst die ICO ja auch als RCData oder BIN in Deiner .rc-Datei speichern:
und in Delphi entsprechend abrufen:
Delphi-Quellcode:
const
cName = "Icon01";
var
aIcon : TIcon;
aResStream : TResourceStream;
begin
aResStream := TResourceStream.Create(HInstance, cName, 'BIN');
try
aIcon := TIcon.Create;
try
aIcon.LoadFromStream(aResStream);
finally
aIcon.Free;
end;
finally
aResStream.Free;
end;
Nicht viel anders so sieht das Ganze bei Verwendung der Png-Lib aus:
Delphi-Quellcode:
const
cName = "Icon01";
var
aPng : TPngImage;
aResStream : TResourceStream;
begin
aResStream := TResourceStream.Create(HInstance, cName, 'PNG');
try
aPng := TPngImage.Create;
try
aPng.LoadFromStream(aResStream);
DrawPNG(aPng, aCanvas, aCanvas.ClipRect, []);
finally
aPng .Free;
end;
finally
aResStream.Free;
end;