Taille de TIcon

sisi231 Messages postés 207 Date d'inscription mercredi 5 mars 2003 Statut Membre Dernière intervention 29 mars 2013 - 6 févr. 2007 à 17:49
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 - 7 févr. 2007 à 16:14
Voilà j'ai Delphi 6 et je voudrais savoir la taille d'un Ticon. Seulement si je prends simplement ic.width et ic.height (si ic est un TIcon donné) sur un icône de 16x16 Delphi me renvoit 32 et 32  !...

Exemple de programme de test pour prouver ma bonne foi :

Créer un nouveau programme avec un bouton et un TOpenDialog sur la fiche principale, mettez ceci comme code du OnClick du bouton :

if OpenDialog1.Execute then
begin
ic:=TIcon.Create;
ic.LoadFromFile(OpenDialog1.FileName);
ShowMessage(IntToStr(ic.width));
ic.Free;
end;

Ensuite ouvrez un icône de 16x16, il affichera 32 !...

Voilà je serais très reconnaissant de votre aide.

SISI231

3 réponses

JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
7 févr. 2007 à 14:00
Salut !
Je t'ai fait ça :




procedure TForm1.Button1Click(Sender: TObject);
var
 ic: TIcon;
 icWidth, icHeight: integer;
begin
if OpenDialog1.Execute then
 begin
  ic:=TIcon.Create;
  ic.LoadFromFile(OpenDialog1.FileName);
  icWidth := GetSystemMetrics(SM_CXSMICON);
  icHeight := GetSystemMetrics(SM_CYSMICON);
  image1.Picture.Assign(ic);
  label1.Caption := inttostr(icWidth) + 'x' + inttostr(icHeight);
  ic.Free;
 end;
end;

A+ =)
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
7 févr. 2007 à 15:04
Salut,

@ JulioDelphi : ton code donnera toujours un résultat de 16 * 16 et ce même si l'icône chargée est de taille 32 * 32

ce qu'il faut savoir c'est qu'un fichier icône contient en générale plus d'une icône (16 * 16 - 32 * 32 - 48 * 48)

et il semblerait que Delphi, par l'intermédiaire d'un TIcon, ne charge que les 32 * 32 où adapte leurs tailles à 32 * 32

pour charger les autres icônes il faut le faire "manuellement" mais ça c'est une autre paire de manche

pour plus d'information voir ici : http://www.wotsit.org/

Faire une recherche avec ICO

 
@+
Cirec

<hr size="2" />
0
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
7 févr. 2007 à 16:14
Arf, j'avoue avoir testé avec un 16x16 et seulement un 16x16 ...
Désolé !
0
Rejoignez-nous