Icone - Ressource

Signaler
Messages postés
31
Date d'inscription
vendredi 25 juin 2004
Statut
Membre
Dernière intervention
19 juin 2007
-
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
-
J'utilise le code de delphicool pour afficher un icone d'un fichier res sur la form :

procedure TForm1.Button9Click(Sender: TObject);
 var
  Icone: TIcon;
  begin
    Icone := TIcon.Create;
    Icone.Handle := LoadIcon(HInstance, 'MONICON');
    Icon := Icone;
    Image1.Picture.Icon := Icon;
    Icone.free;
end;


Sauf qu'en appuyant sur ce bouton j'aimerais que l'icone remplace l'icone du exe du project
Donc je supprime
Image1.Picture.Icon := Icon;


Mais comment faire pour que l'icone s'affiche sur l'exe du project en remplacant l'ancien ??

10 réponses

Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
10
Application.Icon := Image1.Picture.Icon;


@+
Bonne Prog'
Nico



<HR>
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
28
Attention, quand tu écris :
Icon := Icone;
et qu'ensuite tu détruis Icone, alors la propriété Icon de ta fiche pointe dans le vide...
(idem pour Image1.Picture.Icon := Icon;)

Au lieu d'affecter directement, utilisation la méthode Assign qui réalise une copie :
procedure TForm1.ChangeIcon;
var
  Icone: TIcon;
begin
  Icone := TIcon.Create;
  try
    Icone.Handle := LoadIcon(HInstance, 'ICON3');
    //Remplace l'icone de l'application dans la barre des t&#226;ches
    Application.Icon.Assign(Icone);
    Icone.handle := LoadIcon(HInstance, 'ICON2');
    //Remplacer l'icone de la fiche
    Icon.Assign(Icone);
  finally
    Icone.Free;
  end;
end;

Comme tu l'as surement remarqué, c'est la propriété Icon de l'objet Application qu'il faut affecter et non Icon simplement qui n'agit que sur la fiche où ton code figure.

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
http://www.croix-rouge.fr/index/partner_campagne.html
Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
10
Bien vu DelphiProg


@+
Bonne Prog'
Nico



<HR>
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
Messages postés
31
Date d'inscription
vendredi 25 juin 2004
Statut
Membre
Dernière intervention
19 juin 2007

Je ne comprend pas trop car le code ci dessus change bien l'icone dans la barre des taches mais sa ne change pas l'icone du exe du project
Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
10
Ce que l'on te propose fait le changement en cours d'exécution, mais ne conserve pas ce changement à la fin du processus...


@+
Bonne Prog'
Nico



<HR>
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
Messages postés
31
Date d'inscription
vendredi 25 juin 2004
Statut
Membre
Dernière intervention
19 juin 2007

Mais alors comment etablir un code qui permet de changer l'icone de l'exe du project pour une indefinite ?

J'ai 2 boutons et 2 icones ds une ressource, j'aimerais pouvoir les loader simplement et pouvoir garder l'icone loader pdt tt le temps
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
28
Où veux-tu en venir ?
Si c'est pour changer l'icone de manière permanente alors autant le faire à la conception (voir Projets/Options/Application) et point final.

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
http://www.croix-rouge.fr/index/partner_campagne.html
Messages postés
31
Date d'inscription
vendredi 25 juin 2004
Statut
Membre
Dernière intervention
19 juin 2007

Non justement car dans Projets/Options/Application/icone
on ne px rien mettre, c comme si la fenetre est creer en c++ avec les api : J'aimerais pouvoir remplacer l'icone en appuyant sur un des 2 boutons (icone dans ressource). C'est a dire un choix d'icone et pouvoir les loader ...

J'espere que vous me comprenez !
Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
10
Comment ça on ne peut rien mettre ???? C'est pas normal...


@+
Bonne Prog'
Nico



<HR>
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
28
Quelle version de Delphi utilises-tu ?
De Delphi 1 à Delphi 8, c'est la même démarche : dans Projets/Options/Application il y a un bouton intitulé "Charger icone" sur lequel il suffit de cliquer.

Après vérification, il s'avère que si l'on supprime la ligne {$R *.res} dans le fichier du projet, alors effectivement, l'icone et le bouton sont inactifs (entre autres).
Tu n'aurais pas, par mégarde, supprimé cette ligne ?

NB : la prochaine fois, soit plus clair quand tu poses une question

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
http://www.croix-rouge.fr/index/partner_campagne.html