IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants FMX Delphi Discussion :

Différencier les icônes des Forms [Windows]


Sujet :

Composants FMX Delphi

  1. #1
    Membre du Club
    Homme Profil pro
    Programmeur
    Inscrit en
    Octobre 2015
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Programmeur
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2015
    Messages : 80
    Points : 46
    Points
    46
    Par défaut Différencier les icônes des Forms
    Bonjour,

    en FMX j'essaie de différencier les icônes des forms de mon projet quand il est compilé sous Windows comme on le fait en VCL ou en Lazarus. J'arrive bien à le faire à partir d'un code Lazarus justement qui modifie également l'icône du systray, d'ailleurs il était fait pour cela ! Mais je ne veux modifier que l'icône de la fenêtre. Evidemment en OS X le problème ne se pose pas

    Merci. Zac.

  2. #2
    Membre du Club
    Homme Profil pro
    Programmeur
    Inscrit en
    Octobre 2015
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Programmeur
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2015
    Messages : 80
    Points : 46
    Points
    46
    Par défaut
    OK. C'est bon. Enfin j'espère que la solution n'était pas plus évidente, genre un sous-sous-menu dans l'Inspecteur d'objet de la Form permettant de préciser l'icône . J'ai bien regardé mais je n'ai rien vu.

    Il m'a fallu m'y reprendre à 2 fois. J'ai trouvé sur le Web un code presque exploitable directement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    {$IFDEF MSWINDOWS}
    uses Winapi.Windows, Winapi.Messages;
    procedure SetFormIcons(FormHandle: HWND; SmallIconName, LargeIconName: string);
    var
      hIconS, hIconL: Integer;
    begin
      hIconS := LoadIcon(hInstance, PChar(SmallIconName));
      if hIconS > 0 then 
      begin
        hIconS := SendMessage(FormHandle, WM_SETICON, ICON_SMALL, hIconS);
        if hIconS > 0 then
          DestroyIcon(hIconS);
      end;
      hIconL := LoadIcon(hInstance, PChar(LargeIconName));
      if hIconL > 0 then 
      begin
        hIconL := SendMessage(FormHandle, WM_SETICON, ICON_BIG, hIconL);
        if hIconL > 0 then
          DestroyIcon(hIconL);
      end;
    end;
    {$ENDIF}
    Et dans le RC de l'application (une seule icône suffira, avec le même alias que la form, ici "Form1"). Les ressources sont très faciles à utiliser en Delphi, un peu plus compliquées en Lazarus.
    Form1 ICON "images\\wForm1\\wForm1.ico"
    Appel de la méthode dans TForm1 : il faut modifier le type de Handle avec FMX.Platform.Win
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    {$IFDEF MSWINDOWS}
    uses  FMX.Platform.Win,
    {$ENDIF}
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      SetFormIcons(FMX.Platform.Win.FmxHandleToHWND(handle), Self.Name, Self.Name);
    end;
    Mais Avertissement :
    [dcc32 Avertissement] wForm1.pas(140): W1000 Le symbole 'FmxHandleToHWND' est déprécié: 'Use WindowHandleToPlatform instead'

    Soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      SetFormIcons(FMX.Platform.Win.WindowHandleToPlatform(handle).Wnd, Self.Name, Self.Name);
    end;
    Comme d'habitude, s'il y a plus simple ou mieux, je suis preneur. Cordialement. Zac.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 18/08/2010, 03h36
  2. Différencier les utilisateurs des groupes
    Par Tristan Zwingelstein dans le forum Développement Windows
    Réponses: 0
    Dernier message: 08/04/2010, 14h48
  3. [CNF] Modifer les icônes des éléments du TreeViewer
    Par Pikouse dans le forum Eclipse Platform
    Réponses: 0
    Dernier message: 27/03/2009, 15h56
  4. Les icône des MessageBox
    Par JuTs dans le forum C#
    Réponses: 5
    Dernier message: 29/11/2007, 15h27
  5. Pour les experts des forms
    Par EPJSoft dans le forum Delphi
    Réponses: 7
    Dernier message: 10/06/2007, 00h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo