Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Benötige Icons bis 255x255 aus RES-Datei (https://www.delphipraxis.net/167171-benoetige-icons-bis-255x255-aus-res-datei.html)

mz23 16. Mär 2012 11:31

Benötige Icons bis 255x255 aus RES-Datei
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo liebe DP-Gemeinde,

nachdem ich festgestellt habe, daß das Laden von
bis zu 255 x 255 großen ICO-dateien über LoadFromFile
funktionierte, habe ich versucht, diese in eine
Resourcendatei zu packen und aus dieser zu laden.

Leider werden alle geladenen ICO-Größen nur im
Format 32 x 32 angezeigt.

Kurzes Beispiel dazu im Anhang:
PIconSize-Test_2012_03_16.rar - 298,259 Bytes

Meine Frage:
Gibt es eine Möglichkeit, wie ich aus einer Res-Datei
ein Icon anzeigen kann, das seine ursprüngliche
Größe besitzt?

Schöne Grüße aus Nürnberg,
Manfred

Uwe Raabe 16. Mär 2012 12:33

AW: Benötige Icons bis 255x255 aus RES-Datei
 
Delphi-Version?

cookie22 16. Mär 2012 17:45

AW: Benötige Icons bis 255x255 aus RES-Datei
 
Zitat:

Zitat von mz23 (Beitrag 1156876)
Hallo liebe DP-Gemeinde,

nachdem ich festgestellt habe, daß das Laden von
bis zu 255 x 255 großen ICO-dateien über LoadFromFile
funktionierte, habe ich versucht, diese in eine
Resourcendatei zu packen und aus dieser zu laden.

Leider werden alle geladenen ICO-Größen nur im
Format 32 x 32 angezeigt.

Kurzes Beispiel dazu im Anhang:
PIconSize-Test_2012_03_16.rar - 298,259 Bytes

Meine Frage:
Gibt es eine Möglichkeit, wie ich aus einer Res-Datei
ein Icon anzeigen kann, das seine ursprüngliche
Größe besitzt?

Schöne Grüße aus Nürnberg,
Manfred

Warum benutzt du denn .ico Dateien in deinem Programm. Wandel Sie doch einfach in PNG oder BMP um.

mz23 17. Mär 2012 06:03

AW: Benötige Icons bis 255x255 aus RES-Datei
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1156898)
Delphi-Version?

Delphi 2005 - Sorry, werde ich gleich im Profil eintragen:)

mz23 17. Mär 2012 06:19

AW: Benötige Icons bis 255x255 aus RES-Datei
 
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:


Warum benutzt du denn .ico Dateien in deinem Programm. Wandel Sie doch einfach in PNG oder BMP um.

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.

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.

Siehe dazu mein angehängtes Beispiel im ersten Post.

Microsoft begrenzt in seinem OS alle ICOs auf 256x256:

http://msdn.microsoft.com/en-us/libr.../aa511280.aspx

Mir würden schon 58x58 große Icons - aus einer RES-Datei genügen.

Ein paar Bildchen zur Verständlichmachung angehängt.


Schöne Grüße aus Nürnberg,
Manfred

neo4a 17. Mär 2012 06:55

AW: Benötige Icons bis 255x255 aus RES-Datei
 
Zitat:

Zitat von mz23 (Beitrag 1157026)
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.

Zitat:

Zitat von mz23 (Beitrag 1157026)
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:
Code:
Icon01 BIN "Icon1.ico"
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:
Code:
Icon01 PNG "Icon1.png"
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;

Bummi 17. Mär 2012 06:58

AW: Benötige Icons bis 255x255 aus RES-Datei
 
Ich kann das Problem unter D2010 und XE nachvollziehen, woran es liegt kann ich nicht sagen.
Gegf. kannst Du eine Imagelist verwenden, hier giebt es zumindest bei mir keine Problem.
Empfehlenswert wären aber IMHO PNG : http://www.torry.net/authorsmore.php?id=6929

neo4a 17. Mär 2012 07:27

AW: Benötige Icons bis 255x255 aus RES-Datei
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Bummi (Beitrag 1157029)
Ich kann das Problem unter D2010 und XE nachvollziehen, woran es liegt kann ich nicht sagen.

Ich zumindest teilweise ;)

Hier noch einmal der Code:
Delphi-Quellcode:
procedure TForm31.FormShow(Sender: TObject);
var
  aIcon : TIcon;
  aStream : TResourceStream;
begin
  aStream := TResourceStream.Create(HInstance, 'ICON1', 'BIN');
  try
     aIcon := TIcon.Create;
     try
       aIcon.LoadFromStream(aStream);
       Image1.Picture.Assign(aIcon);
     finally
       aIcon.Free;
     end;

  finally
    aStream.Free;
  end;
Und die .rc:
Code:
ICON1 BIN "Icon1.ico"
Liegt das Icon1.ico in mehreren Auflösungen vor, dann wird nur ein 32x32-Bild angezeigt. Speichere ich dagegen nur die 256x256-Auflösung, wird's groß.

Bummi 17. Mär 2012 08:20

AW: Benötige Icons bis 255x255 aus RES-Datei
 
So ich habe jetzt etwas was funktioniert:
Delphi-Quellcode:
   aIcon.Handle :=LoadImage(HInstance, MakeIntResource('RESICON128X128'), IMAGE_ICON, 128, 128, LR_DEFAULTCOLOR);

mz23 17. Mär 2012 10:52

AW: Benötige Icons bis 255x255 aus RES-Datei
 
Genial, vielen, vielen Dank.

Das mit der RC-Datei und BRCC32.exe wußte ich zwar - irgendwo
im Hinterkopf - habe es aber noch nicht ausprobiert.

@Bummi und @neo4b und @alle

ihr habt was bei mir gut - toll.

Schöne Grüße aus Nürnberg,
Manfred


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:51 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz