Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Timage Icon Grösse anpassen. (https://www.delphipraxis.net/188036-timage-icon-groesse-anpassen.html)

codenoob 25. Jan 2016 23:35

Timage Icon Grösse anpassen.
 
Hi Delphianers.

Ich habe in meiner Form ein Paar Timages wo vom Benutzer geladene Icons angezeigt werden.
Die Timage hat eine Feste Grösse von 32x32 Pixel.
Wenn jetzt aber jemand eine Icon ladet die grösser ist als 32x32 wird nicht die ganze angezeit.
Hab schon gelesen das man die Stretchen kann und auch schon einen Code gefunden.
Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
var i: integer;
icon: Ticon;
TheBitmap, bit2: Tbitmap;
begin
icon := Ticon.Create;
icon.LoadFromFile('myIcon.ico');

Thebitmap := Tbitmap.Create;
Thebitmap.Width := icon.Width;
Thebitmap.Height := Icon.Height;
thebitmap.Canvas.Draw(0,0,icon);

bit2 := tbitmap.Create;
bit2.Width := 32;
bit2.Height := 32;

bit2.Canvas.StretchDraw(Rect(0,0,32,32), Thebitmap);
thebitmap.Free;
bit2.SaveToFile('temp.bmp');
bit2.Free;

image1.Picture.LoadFromFile('temp.bmp');
was jetzt allerdings ist das die geladene .bmp Datei die aus dem Icoin erstellt wurde jetzt nicht mehr transparent ist und einen weissen Hintergrund bekommen hat,
der natürlich jetzt auch in der Timage dann sichtbar ist kann man den Entfernen oder das ganze anders lösen ohne die icon in eine bmp umzuwandeln?

Grüsse Tom

Cubysoft 26. Jan 2016 01:08

AW: Timage Icon Grösse anpassen.
 
Kannst du nicht einfach die Eigenschaft "Stretch" von der TImage Komponente auf "true" setzen?

codenoob 26. Jan 2016 01:21

AW: Timage Icon Grösse anpassen.
 
Nein das funktioniert leider nicht.

Perlsau 26. Jan 2016 04:15

AW: Timage Icon Grösse anpassen.
 
Liste der Anhänge anzeigen (Anzahl: 1)
Kann nicht sein :lol: denn gerade eben habe ich folgenden Code mit XE7 erfolgreich getestet:
Delphi-Quellcode:
Procedure TFormMain.Button1Click(Sender: TObject);
Var
  MyIcon : TIcon;
begin
  MyIcon := TIcon.Create;
  Try
    MyIcon.LoadFromFile('D:\Icons\TestIcon.ico');
    Image1.Picture.Bitmap.Assign(MyIcon);
    Image2.Picture.Bitmap.Assign(MyIcon);
    Image3.Picture.Bitmap.Assign(MyIcon);
  Finally
    MyIcon.Free;
  End;
end;
Das Icon hat die Größe 32x32, das Image1 hat 50x50, Image2 32x32 und Image3 mißt 25x25, Stretch steht bei allen ebenso auf True wie Proportional, und das Icon wird bei allen komplett angezeigt.

Kann natürlich schon sein, daß dein Code nicht funktioniert. Übrigens solltest du als Variablen-Bezeichner nicht einen Namen wählen, der bereits in deiner Anwendung existiert. TForm hat nämlich ein Property namens Icon, und wenn du jetzt ein TIcon mit demselben Namen deklarierst, könntest du unerwünschte Konflikte auslösen. Deshalb heißt mein TIcon auch MyIcon :)

codenoob 26. Jan 2016 22:40

AW: Timage Icon Grösse anpassen.
 
Danke Perlsau hab's nochmals getestet und jetzt geht es hatte Proportional auf False ;-)

L.g Tom


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