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

Flex Discussion :

List: affichage d'icone (iconField, iconFunction)


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 18
    Par défaut List: affichage d'icone (iconField, iconFunction)
    Bonjour,
    Je voudrais afficher une icône dans une List.

    J'ai vu que la class List avait les propriété iconField et iconFunction.

    c'est cette icon la que je veux afficher

    [Embed (source="/resources/png/palette-16x16.png")]
    private static var iconPalette: Class;

    c'est donc une classe!

    et iconField prend un string.

    des idée pour afficher mon icone?

  2. #2
    Membre expérimenté Avatar de Fares BELHAOUAS
    Homme Profil pro
    Développeur Flex & Java
    Inscrit en
    Mars 2002
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Flex & Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 182
    Par défaut
    Salam wespa,

    Voici le code pour ce que tu veux faire, en utilisant iconFunction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	[Embed(source="/resources/png/palette-16x16.png")]
    	private static var iconPalette: Class;
     
    	private function iconFunction(item:Object):Class
    	{
    		return iconPalette;
    	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	<mx:List
    		dataProvider="{myDataProvider}"
    		horizontalCenter="0" verticalCenter="0"
    		iconFunction="iconFunction"
    		/>

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 18
    Par défaut
    c'est parfait!
    Merci Fares!

    Wespa

  4. #4
    Membre expérimenté Avatar de Fares BELHAOUAS
    Homme Profil pro
    Développeur Flex & Java
    Inscrit en
    Mars 2002
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Flex & Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 182
    Par défaut
    Salam wespa,

    Sinon, pour comprendre pourquoi iconField est de type String, il suffit de lire le help:

    The renderers will look in the data provider object for a property of the name supplied as the iconField. If the value of the property is a Class, it will instantiate that class and expect it to be an instance of an IFlexDisplayObject. If the value of the property is a String, it will look to see if a Class exists with that name in the application, and if it can't find one, it will also look for a property on the document with that name and expect that property to map to a Class.
    Dans ce cas, iconField est le nom de la propriété de l'objet qui est dans le data provider. il doit être public et non statique pour pouvoir y accéder.

    Exemple, en utilisant iconField:

    MyItem.as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public class MyItem
    {
    	public function MyItem(label:String)
    	{
    		this.label = label; 
    	}
     
    	[Embed(source="palette-16x16.png")]
    	public var iconPalette: Class;
     
    	public var label:String = null;
     
    } // class
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    		myDataProvider = new Array();
    		myDataProvider.push(new MyItem('Item1'));
    		myDataProvider.push(new MyItem('Item2'));
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	<mx:List
    		dataProvider="{myDataProvider}"
    		horizontalCenter="0" verticalCenter="0"
    		iconField="iconPalette"
    		/>

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 18
    Par défaut
    Ce que je ne comprends pas, c'est pourquoi il ne voulais pas reconnaitre le classe iconPalette telle que je l'avais définie dans le script de mon Appli:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [Embed(source="palette-16x16.png")]
    	public var iconPalette: Class;
    et puis faire juste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <mx:List
    		dataProvider="{myDataProvider}"
    		horizontalCenter="0" verticalCenter="0"
    		iconField="iconPalette"
    		/>
    à noter que je n'ai qu'un seul élément dans ma liste.
    ou alors dois-je comprendre que l'icone doit obligatoirement faire partie du dateProvider?

  6. #6
    Membre expérimenté Avatar de Fares BELHAOUAS
    Homme Profil pro
    Développeur Flex & Java
    Inscrit en
    Mars 2002
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Flex & Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 182
    Par défaut
    Salam wespa,

    d'après le Help, on a droit à plusieurs options, mais je ne sais pas comment faire autrement que de l'avoir dans les objets du dataProvider, mais bon, je crois que la solution iconFunction fait l'affaire, c'est ça l'essentiel.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 18
    Par défaut
    Conclusion: il faut que l'icône soit dans le dataProvider même s'il n'y a qu'un seul élément dans ce dernier.
    L'icone ne peut être affecté qu'à l'élément du dataProvider et ceci explique cela

    Merci pour ton aide Fares

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

Discussions similaires

  1. [Barre de tache] Affichages des icones habituelles
    Par y0p dans le forum Windows XP
    Réponses: 4
    Dernier message: 30/06/2006, 09h47
  2. [SWT][IHM]Probleme d'affichage des icones
    Par barbu0055 dans le forum SWT/JFace
    Réponses: 6
    Dernier message: 03/03/2006, 13h05
  3. Affichage d'icones et de texte dans un TListView
    Par Captain_JS dans le forum C++Builder
    Réponses: 1
    Dernier message: 29/10/2004, 13h08
  4. zone de liste : affichage de deux colonnes
    Par niclalex dans le forum IHM
    Réponses: 3
    Dernier message: 27/10/2004, 23h51

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