Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi 16x16px Icon auf Canvas zeichnen (https://www.delphipraxis.net/94646-16x16px-icon-auf-canvas-zeichnen.html)

And1.G 24. Jun 2007 23:02


16x16px Icon auf Canvas zeichnen
 
Ich wollte ein 16x16 Pixel großes Icon auf ein Canvas zeichnen.
Das Icon habe ich aus der Exe mit
Delphi-Quellcode:
IconMessage.LoadFromResourceID(hInstance, 34);
geladen.
Das Icon beinhaltet einmal das Bild in 256 Farben und einmal in 32 Bit.

Jetzt hab ich dazu mal zwei Fragen:

Wenn ich jetzt das Icon mit
Delphi-Quellcode:
Draw(Rect.Left + 2, Rect.Top + 2, IconIncoming);
auf mein Canvas zeichne, wird es auf 32x32 Pixel vergrößert.
Wie kann man das verhindern, sodass das Icon einfach in Originalgröße gezeichnet wird?

Uuuuuund

Kann man irgendwie beeinflussen, ob das 256 Farben Icon oder das mit 32 Bit gezeichnet wird? Oder geschieht das automatisch je nach Möglichkeiten des Systems?


Danke sehr schonmal für Antworten!

bitsetter 24. Jun 2007 23:57

Re: 16x16px Icon auf Canvas zeichnen
 
Hi,

bei mir geht es jedenfalls hiermit, dass das Icon mit einer Größe von 16X16 angezeigt wird:
Delphi-Quellcode:
var
  ico: TIcon;
begin
  ico:= TIcon.Create;
  try
    ico.Handle:= LoadImage(Hinstance, MakeIntResource(1), IMAGE_ICON, 16, 16, 0);
    Canvas.Draw(0, 0, ico);
  finally
    ico.Free;
  end;

And1.G 25. Jun 2007 00:11

Re: 16x16px Icon auf Canvas zeichnen
 
Vielen Dank für die Antwort!

Jetz wird es schonmal in der richtigen Größe gezeichnet.
Aber ich glaube es wird jetzt nur noch das 8-Bit Icon geladen, es fehlen mir irgendwie die Schattierungen.
Wie kann man denn entscheiden, welche Version vom Icon geladen wird?


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:14 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