Hallo liebe Delphi-Praxis-Gemeinde,
vorab: ich habe auch schon im Forum gesucht, viel zu Icons, aber nicht zu meinem Problem gefunden
Ich habe ein ganz simples Problem mit Icons, wenn ich diese zur Laufzeit in mein Programm einbinden will.
Dazu lade ich die entsprechenden Icons (.ico-Dateien) von der Festplatte und sollen dann in zwei TImageList untergebracht werden, als 16x16 bzw. 32x32 Grafik. Je nach Größe, sollen die Icons mittels
Canvas.StretchDraw angepasst werden.
Soweit so gut. Ich habe jedoch Probleme, die Originalgröße der Icons zu besteimmen.
Nehmen wir ein einfaches Icon mit der Größe 16x16. Wenn ich dies per
Delphi-Quellcode:
var
ladeICO : TIcon;
ladeBMP : TBitmap;
begin
ladeBMP := TBitmap.Create;
ladeICO := TIcon.Create;
try
ladeIco.LoadFromFile(Filename);
ladeBMP.Width := ladeICO.Width;
ladeBMP.Height := ladeICO.Height;
ladeBMP.Canvas.Draw (0, 0, ladeICO);
finally
ladeICO.Free;
ladeBMP.Free;
end;
end;
lade, erhalte ich immer den Wert 32. Die Delphi-Hilfe meint zu TIcon.Height auch:
Zitat:
Alle Symbole in einer Anwendung besitzen dieselbe Höhe, und diese wird von Windows festgelegt. Mit einem Lesezugriff auf Height kann die gemeinsame Höhe ermittelt werden.
Wie kann ich die wirkliche Größe des Icons ermitteln? Mit
ExtractIconEx erhalte ich ja nur die Icon-Informationen von EXE bzw
DLL...
Wie kann ich sogar die unterschiedlichen Größen innerhalb eines Icons ermitteln? Wie gesagt, die Icons liegen als .ico-Dateien vor.
Vorab besten Dank, für jedwede Unterstützung.