![]() |
Icon in Image zeichnen
Hi,
ich habe ein Image Objekt (Größe 20x17 Pixel) und ein Icon (Größe 64x64 Pixel). Wie kann ich das ganze Icon verkleinern, so dass es komplett im Image angezeigt wird? Es ist egal, wie verzerrt das dann Ding ist :-D devnull |
Re: Icon in Image zeichnen
Delphi-Quellcode:
Image1.Stretch:=true;
Image1.Proportional:=true; |
Re: Icon in Image zeichnen
Achja, wenn's verzerrt sein soll einfach
Delphi-Quellcode:
weglassen.
Image1.Proportional:=true;
|
Re: Icon in Image zeichnen
Hi Matze,
Delphi-Quellcode:
:?: Das funzt so nicht.
procedure geticon (x,y,h,w : integer; filename : string);
var MyIcon:TIcon; icoHandle: HIcon; Image1 : TImage; begin Image1 := TImage.Create(Form1); Image1.Top := y; Image1.Left := x; Image1.Parent := Form1; MyIcon:=TIcon.Create; try icoHandle := ExtractIcon(application.handle,pchar(filename), 0); MyIcon.Handle := icoHandle; Image1.Height := h; Image1.Width := w; Image1.Picture.Icon := MyIcon; Image1.Proportional := true; finally MyIcon.free; end; end; Wird im Proze Kopf übergeben.
Delphi-Quellcode:
Image1.Height := 20;
Image1.Width := 18; :wall: Die Icons in den EXE-Dateien sind größer als 20x18 Pixel !!!! WARUM GEHT DAS NICHT ???? devnull |
Re: Icon in Image zeichnen
Kannst du mir mal auf die Sprünge helfen? Welche Unit hab ich denn vergessen?
Zitat:
|
Re: Icon in Image zeichnen
Hi Matze,
probier es mal mit ShellAPI devnull |
Re: Icon in Image zeichnen
Es ist keine schöne Lösung:
Delphi-Quellcode:
//exe auswählen
procedure TForm1.Button1Click(Sender: TObject); begin if OpenDialog1.Execute then DrawFile(OpenDialog1.FileName); Image1.Picture.SaveToFile(ExtractFilePath(ParamStr(0))+'Icon.bmp'); Image1.Width:=20; Image1.Height:=18; Image1.Picture.LoadFromFile(ExtractFilePath(ParamStr(0))+'Icon.bmp'); Image1.Stretch:=true; end; //Icon auslesen: procedure TForm1.DrawFile(Name: String); var FileInfo: TSHFileInfo; ImageListHandle: THandle; aIcon: TIcon; begin // Speicher löschen FillChar(FileInfo, SizeOf(FileInfo), #0); // Handle der Image Liste der ausgewählten Datei ermitteln ImageListHandle := SHGetFileInfo( PChar(Name), 0, FileInfo, SizeOf(FileInfo), // großes Icon verlangen SHGFI_ICON or SHGFI_LARGEICON ); try // TIcon Objekt erstellen aIcon := TIcon.Create; try // Icon Handle zuweisen aIcon.Handle := FileInfo.hIcon; // Transparent darstellen aIcon.Transparent := True; with Image1 do begin // Paintbox auf die entsprechende Größe bringen Width := aIcon.Width; Height := aIcon.Height; Application.ProcessMessages; // Paintbox löschen Canvas.Rectangle(-1, -1, Succ(Width), Succ(Height)); // Icon darstellen Canvas.Draw(0, 0, aIcon); end; finally // TIcon Objekt freigeben FreeAndNil(aIcon); end; finally // Icon der Shell wieder freigeben DestroyIcon(FileInfo.hIcon); // Icon Liste der Shell wieder freigeben {ImageList_Destroy(ImageListHandle);} end; end; |
Re: Icon in Image zeichnen
Achja,
Delphi-Quellcode:
hab ich noch vergessen.
Image1.Proportional:=true;
|
Re: Icon in Image zeichnen
@ Matze,
noch einmal danke. wie kann ich diese bilder über einen button legen ?? Bis jetzt werden Sie unter dem button gezeichnet ! devnull |
Re: Icon in Image zeichnen
Nimm einfach einen SpeedButton oder einen BitBtn, dann bei Glyph das Bildchen angeben.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 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 by Thomas Breitkreuz