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

Lazarus Pascal Discussion :

[laz4android] jMenu : les icônes ne s'affichent pas


Sujet :

Lazarus Pascal

  1. #1
    Membre éclairé
    Avatar de sematimo
    Profil pro
    Inscrit en
    Février 2009
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 358
    Par défaut [laz4android] jMenu : les icônes ne s'affichent pas
    Bonjour à tous
    j'ai un jmenu auquel je veux mettre des icônes.
    j'ai mis mes icônes dans drawable et renseigné IconIdentifier avec le nom des icônes sans les extensions.
    J'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TAndroidModule1.AndroidModule1CreateOptionMenu(Sender: TObject; jObjMenu: jObject);
    begin
      //Menu1.ShowOptions(jObjMenu); // don't handle icons...
      Menu1.ShowOptions(jObjMenu, misNever); //handle icons...
    end;
    le menu s'affiche bien mais les icônes n'apparaissent pas.
    Dans option du projet j'ai comme thème 'AppCompat.Light.DarkActionBar

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 099
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Les noms des fichiers des icônes sont-ils bien en minuscules, sans autre séparateur que le "_" (du genre ic_add.png) ?
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  3. #3
    Membre éclairé
    Avatar de sematimo
    Profil pro
    Inscrit en
    Février 2009
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 358
    Par défaut
    mes icônes sont sans majuscule
    ic_exit.png
    ic_info.png

  4. #4
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 099
    Billets dans le blog
    2
    Par défaut
    Dans ce cas, il faudrait montrer un peu plus de code...
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  5. #5
    Membre éclairé
    Avatar de sematimo
    Profil pro
    Inscrit en
    Février 2009
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 358
    Par défaut
    Je poste le code: unit1.zip.
    Dans le projet j'utilise aussi un jcustomDialog mais la barre de titre ne s'affiche pas bien que l'option soit cochée dans les paramètres.
    J'ai remarqué que dans ton jeu du pendu, la barre de titre de ton jcustomDialog ne s'affiche pas non plus.
    Dans le JcustomDialog exemple de la démo, le titre s'affiche sans problème mais j'ai remarqué que le theme est 'Holo'.

  6. #6
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 099
    Billets dans le blog
    2
    Par défaut
    Pour afficher les icônes, il faut ajouter l'option misNever comme paramètre de ShowOptions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TAndroidModule1.AndroidModule1CreateOptionMenu(Sender: TObject; jObjMenu: jObject);
    begin
      mnuPrincipal.ShowOptions(jObjMenu, misNever);
    end;
    Tu as précisé la chose dans ton premier post, mais ce n'est pas le cas dans ton code.

    Pour le titre du jCustomDialog, en effet c'est peut-être le thème qui est en cause. Il est possible de personnaliser un thème dans le fichier themes.xml et le style d'un dialogue dans le fichier styles.xml, présents dans le répertoire res/values (ou res/values-vXX selon l'API-cible). Mais je n'ai jamais vraiment creusé la question en dehors de la personnalisation des couleurs.

    Quelque chose dans ce genre :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <style name="MyAppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="android:windowNoTitle">false</item>
    </style>
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  7. #7
    Membre éclairé
    Avatar de sematimo
    Profil pro
    Inscrit en
    Février 2009
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 358
    Par défaut
    j'ai bien rajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Menu1.ShowOptions(jObjMenu, misNever);
    mais les icônes ne s'affichent toujours pas.
    je vais voir du coté des xml pour le titre des customdialog.

  8. #8
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 099
    Billets dans le blog
    2
    Par défaut
    Je n'avais pas fait attention, mais en fait le non-affichage des icônes est volontaire dans le thème AppCompat. Il est possible de forcer cet affichage mais il faut mettre les mains dans le cambouis dans les méthodes en Java. Je ne me suis encore jamais risqué à ce genre de manipulation.

    Il est théoriquement possible de forcer l'affichage dans un fichier menu.xml, mais jusqu'à présent Gradle déclenche des exceptions à tous mes essais.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  9. #9
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 099
    Billets dans le blog
    2
    Par défaut
    Bon j'ai trouvé la syntaxe et la construction de l'apk se fait correctement, mais cela ne suffit manifestement pas à forcer l'affichage des icônes dans le menu "flow"...

    À toutes fins utiles, voici le contenu du fichier, dont le nom doit correspondre à l'identifiant du menu (par exemple, menuprincipal.xml), et qui doit être déposé dans le répertoire res/menu :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:app="http://schemas.android.com/apk/res-auto">
     
        <item android:id="@+id/menu1"
              android:icon="@drawable/ic_bulletgreen"
              android:title="Menu 1"
              app:showAsAction="never" />
        <item android:id="@+id/menu2"
              android:icon="@drawable/ic_bulletkey"
              android:title="Menu 2"
              app:showAsAction="never" />
     
    </menu>
    Théoriquement, la valeur never de ShowAsAction force l'icône à s'afficher dans le menu vertical. Les autres valeurs possibles sont ifRoom et always.

    Je continue à chercher s'il faut éditer un autre fichier xml (layout, styles...) concomitamment.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

Discussions similaires

  1. [AJAX] Div dynamique AJAX. Sous IE, les images ne s'affichent pas
    Par N3odyme dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/12/2006, 20h56
  2. Les images ne s'affichent pas dans mes JSP
    Par casho dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 16/09/2006, 20h01
  3. Templates :: les variables ne s'affichent pas
    Par gollum33 dans le forum Langage
    Réponses: 2
    Dernier message: 19/06/2006, 22h49
  4. [JAR] Les icônes ne s'affichent pas
    Par david06600 dans le forum Général Java
    Réponses: 15
    Dernier message: 19/02/2006, 14h01
  5. Les classes ne s'affichent pas
    Par karl3i dans le forum MFC
    Réponses: 8
    Dernier message: 26/01/2004, 14h52

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