Thema: Delphi Icon pixelfrei

Einzelnen Beitrag anzeigen

Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#20

Re: Icon pixelfrei

  Alt 3. Feb 2008, 12:45
Hi,

das Ergebnis sieht gut aus, aber ich verstehe nicht, was ich mit dem Ergebnis Icon.Images.Image anfangen soll. Das ist nämlich TIconImage und lässt sich nicht via Canvas zeichnen.

Habe mich nochmal genauer damit beschäftigt:
Delphi-Quellcode:
procedure GetIcon(filename : String; IconIndex: Integer; var Result : TBitmap);
var NumberOfIcons : Integer;
    Ico : TIcon;
    Icon : TAdvancedIcon;
    IconLib : TIconLibrary;
    Image : TIconImage;
begin
  NumberOfIcons := ExtractIcon(hInstance, PChar(Filename), UINT(-1));

  Ico := TIcon.Create;
  if (Ico <> nil) and (NumberOfIcons > -1) then
    Ico.Handle := ExtractIcon(hInstance, PChar(Filename), IconIndex);

  Icon := TAdvancedIcon(Ico);
  IconLib := TIconLibrary.Create;
  Image := Icon.Images.Image[1];

  Result := TBitmap.Create;
  Image.Draw(Result.Canvas, 0, 0);
  Ico.Free;

  Icon.Free;
  IconLib.Free;
end;
Nun gibt es eine AV in der markierten Zeile der AdvancedIcon.pas:
Delphi-Quellcode:
function TIconImageList.GetIconImage(Index : Word) : TIconImage;
begin
  Result:=nil;
  IF Index>FCapacity Then exit; <--
  Result:=FList^[Index];
end;
Ich gehe davon aus, dass oben TAdvancedIcon(Ico) falsch ist, was müsste anstelle davon hin ? So habe ich es zumindest im Beispielcode gesehen.
  Mit Zitat antworten Zitat