![]() |
Re: Windows SystemMessage Icons in 16x16 laden?
@DeddyH
hab ich grad getestet, dann sehe ich nur ein viertel von dem Icon. mfG newbe |
Re: Windows SystemMessage Icons in 16x16 laden?
Ist das Icon 32*32 groß oder die verwendete Fläche? Teilweise werden 32*32 Icons geliefert auf denen das Icon eigentlich nur in 16*16 vorliegt.
|
Re: Windows SystemMessage Icons in 16x16 laden?
@Bernhard Geyer
Sehr gute Frage, ich kann sie leider nicht beantworten, da ich nicht weis, wo Windows das Icon herzaubert. Meine Intenet-Recherchen dazu haben nicht ergeben. In der Shell32.dll sind sie jedenfalls nicht. mfG newbe |
Re: Windows SystemMessage Icons in 16x16 laden?
Und mit einem kleinen Umweg über eine Bitmap?
Delphi-Quellcode:
Man könnte natürlich auch gleich die Bitmap in 16x16 deklarieren und per StretchBlt auf deren Canvas zeichnen, aber so wie oben ging das bei mir.
var Icon: TIcon;
Bmp: TBitmap; begin Icon := TIcon.Create; try Icon.Handle := LoadImage(0, IDI_ERROR, Image_Icon, 16, 16, LR_SHARED); Bmp := TBitmap.Create; try Bmp.Width := Icon.Width; Bmp.Height := Icon.Height; Bmp.Canvas.Draw(0,0,Icon); Image1.Picture.Assign(Bmp); finally Bmp.Free; end; finally Icon.Free; end; end; |
Re: Windows SystemMessage Icons in 16x16 laden?
@DeddyH, das wird wohl nur so funktionieren. Leider nur mit einem weissem Rand / Hintergrund vom Bitmap.
Auch ein Transparent stellen wir da nur ein schlechtes Ergebnis liefern. Ich habe selber feststellen müssen, dass das TIcon insbesondere bei Delphi6 so seine Eigenheiten hat. Wenn der TE nun aber 16x16 Icons will:
Delphi-Quellcode:
Ich sag es gleich, schick schaut es nicht aus. ;)
procedure TForm1.FormCreate(Sender: TObject);
const IcS = 16; var Icon: HICON; Bmp: TBitmap; begin Icon:= LoadImage(0, IDI_ERROR, Image_Icon, IcS, IcS, LR_SHARED); Bmp := TBitmap.Create; try Bmp.Width := IcS; Bmp.Height := IcS; Bmp.PixelFormat := pf24Bit; Bmp.Canvas.Brush.Color := Self.Color; Bmp.Canvas.FillRect(Bmp.Canvas.ClipRect); DrawIconEx(Bmp.Canvas.Handle,0,0,Icon,IcS,IcS,0,0,DI_NORMAL); Image1.Picture.Assign(Bmp); finally Bmp.Free; end; end; |
Re: Windows SystemMessage Icons in 16x16 laden?
@Turbo Pascal
Ich benötige die Icons für eine Baumansicht und ich arbeite mit Delphi6 mfG newbe |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz