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

JavaFX Discussion :

comment récupérer l'instance du controleur qui a été créée lors du chargement de mon FXML


Sujet :

JavaFX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut comment récupérer l'instance du controleur qui a été créée lors du chargement de mon FXML
    Bonjour,

    J'ai un FXML "Contenant.fxml" qui contient un label, un bouton et un include d'un "Contenu.fxml" qui contient lui même un bouton et un label.

    Les deux FXML ont leur propre controleur.

    Je voudrais pouvoir accéder à partir de mon controleur "Contenu" à une méthode public de mon controleur "Contenant".

    Je reçois le message suivant :
    Cannot make a static reference to the non-static method setMyContenant(String) from the type ContenantControleur
    quand j'essaie de coder :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    application.ContenantControleur.setMyContenant("Bouton contenu poussé");
    et je comprends bien ce message. Ma question est donc comment récupérer l'instance du controleur qui a été crée lors du chargement de mon FXML?

    Voici un code qui illustre le problème.

    Contenant.fxml:

    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
     
    <?xml version="1.0" encoding="UTF-8"?>
     
    <?import java.lang.*?>
    <?import javafx.scene.control.*?>
    <?import javafx.scene.layout.*?>
    <?import javafx.scene.layout.AnchorPane?>
     
    <AnchorPane prefHeight="400.0" prefWidth="400.0" style="-fx-background-color: red;" xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.ContenantControleur">
       <children>
        <fx:include fx:id="includedContenu" layoutX="100.0" layoutY="100.0" source="Contenu.fxml" />
          <Label fx:id="lblContenant"  layoutX="5.0" layoutY="10.0" text="Ceci est le contenant" />
          <Button layoutX="300.0" layoutY="350.0" mnemonicParsing="false" onAction="#handleButtonContenant" text="BtnContenant" />
       </children>
    </AnchorPane>
    et son controlleur
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    package application;
     
    import java.net.URL;
    import java.util.ResourceBundle;
     
    import javafx.event.ActionEvent;
    import javafx.fxml.FXML;
    import javafx.fxml.Initializable;
    import javafx.scene.control.Label;
    import application.ContenuControleur;
     
    public class ContenantControleur implements Initializable {
     
    	    @FXML
    	    private Label lblContenant;
     
    	    @FXML
    	    private ContenuControleur includedContenuController;
     
    	    @FXML
    	    private void handleButtonContenant(ActionEvent event) {
    	        System.out.println("You clicked Contenant Button!");
    	        setMyContenant("Bouton contenant poussé");
    	        //application.ContenuControleur.setMyContenu("Bouton contenant poussé");
    	    }
     
    	    @Override
    	    public void initialize(URL url, ResourceBundle rb) {
    	        // TODO
    	    }
     
    	    public void setMyContenant(String texteContenant){
     
    	    	lblContenant.setText(texteContenant);
     
    	    }
     
    	}
    et le Contenu.fxml
    Code : 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"?>
     
    <?import java.lang.*?>
    <?import javafx.scene.control.*?>
    <?import javafx.scene.layout.*?>
    <?import javafx.scene.layout.AnchorPane?>
     
    <AnchorPane prefHeight="200.0" prefWidth="200.0" style="-fx-background-color: yellow" xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.ContenuControleur">
       <children>
          <Label fx:id="lblContenu"  layoutX="5.0" layoutY="20.0" text="Ceci est le contenu" />
          <Button layoutX="105.0" layoutY="170.0" mnemonicParsing="false" onAction="#handleButtonContenu" text="BtnContenu" />
       </children>
    </AnchorPane>
    et son contrôleur
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    package application;
     
    import java.net.URL;
    import java.util.ResourceBundle;
     
    import javafx.event.ActionEvent;
    import javafx.fxml.FXML;
    import javafx.fxml.Initializable;
    import javafx.scene.control.Label;
     
    public class ContenuControleur implements Initializable {
     
    	    @FXML
    	    private Label lblContenu;
     
    	    @FXML
    	    private void handleButtonContenu(ActionEvent event) {
    	        System.out.println("You clicked Contenu Button!");
    	        setMyContenu("Bouton contenu poussé");
    	        //application.ContenantControleur.setMyContenant("Bouton contenu poussé");
    	        // j'ai avec l'instruction précédente un message : Cannot make a static reference to the non-static method setMyContenant(String) from the type ContenantControleur
    	    }
     
    	    @Override
    	    public void initialize(URL url, ResourceBundle rb) {
    	        // TODO
    	    }
     
    	    public void setMyContenu(String texteContenu){
     
    	    	lblContenu.setText(texteContenu);
     
    	    }
     
    	}
    enfin, mon Main.java
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    package application;
     
    import javafx.application.Application;
    import javafx.fxml.FXMLLoader;
    import javafx.stage.Stage;
    import javafx.scene.Parent;
    import javafx.scene.Scene;
    import javafx.scene.layout.AnchorPane;
    import javafx.scene.layout.BorderPane;
     
     
    public class Main extends Application {
    	@Override
    	public void start(Stage primaryStage) {
    		try {
    			AnchorPane root = new AnchorPane();
     
    			root = FXMLLoader.load(getClass().getResource("Contenant.fxml"));
     
    			Scene scene = new Scene(root,400,400);
    			scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
     
     
    			primaryStage.setScene(scene);
    			primaryStage.show();
    		} catch(Exception e) {
    			e.printStackTrace();
    		}
    	}
     
    	public static void main(String[] args) {
    		launch(args);
    	}
    }
    Merci d'avance pour votre aide

  2. #2
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2010
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 212
    Par défaut
    Salut,
    Je te propose de faire les choses suivantes:
    Dans la classe ContenuController ajouter une variable d'instance de type ContenantController avec un setter:
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    public class ContenuController implements Initializable {
     
        @FXML
        private Label lblContenu;
     
        private ContenantController contenantController;
     
        @FXML
        private void handleButtonContenu(ActionEvent event) {
            System.out.println("You clicked Contenu Button!");
            setMyContenu("Bouton contenu poussé");
            contenantController.setMyContenant("Bouton contenu poussé");
     
        }
     
        @Override
        public void initialize(URL url, ResourceBundle rb) {
            // TODO
        }
     
        public void setMyContenu(String texteContenu) {
     
            lblContenu.setText(texteContenu);
     
        }
     
        public void setContenantController(ContenantController contenantController) {
            this.contenantController = contenantController;
        }
     
     
     
    }
    dans la classe ContenantController, ajouter un getter qui retourne un objet de type ContenuController:
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    public class ContenantController implements Initializable {
     
        @FXML
        private Label lblContenant;
     
        @FXML
        private ContenuController includedContenuController;
     
        @FXML
        private void handleButtonContenant(ActionEvent event) {
            System.out.println("You clicked Contenant Button!");
            setMyContenant("Bouton contenant poussé");
            includedContenuController.setMyContenu("Bouton contenant poussé");
        }
     
        @Override
        public void initialize(URL url, ResourceBundle rb) {
            // TODO
        }
     
        public void setMyContenant(String texteContenant) {
     
            lblContenant.setText(texteContenant);
     
        }
     
        public ContenuController getIncludedContenuController() {
            return includedContenuController;
        }
     
     
    }
    Dans la classe Main, utiliser ce code:
    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
    @Override
        public void start(Stage primaryStage) {
            try {
                FXMLLoader loader = new FXMLLoader(getClass().getResource("Contenant.fxml"));
                AnchorPane root = loader.load();
                ContenantController contenantController = loader.getController();
                ContenuController contenuController = contenantController.getIncludedContenuController();
                contenuController.setContenantController(contenantController);
                Scene scene = new Scene(root, 400, 400);
                primaryStage.setScene(scene);
                primaryStage.show();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

  3. #3
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Pas besoin de passer par un setter ; quand dans le FXML tu fais :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <AnchorPane prefHeight="400.0" prefWidth="400.0" style="-fx-background-color: red;" xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.ContenantControleur">
        [...]
        <fx:include fx:id="includedContenu"

    Et que ce second FXML a son propre contrôleur :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <AnchorPane prefHeight="200.0" prefWidth="200.0" style="-fx-background-color: yellow" xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.ContenuControleur">

    Alors dans le controleur du FXML principal / contenant tu peux automatiquement faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public Class ContenantControleur implements Initialize {
     
        @FXML
        private Node includedContenu;
     
        @FXML 
        private ContenuController includedContenuController;
     
        [...]
    }
    -> référence implicite vers le contrôleur du FXML inclus = <id du FXML inclus>Controller. L'injection de la référence se fait avant l'appel à initialize() juste après le chargement du FXML inclus.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  4. #4
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2010
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 212
    Par défaut
    Mais, vous n'avez pas indiqué comment peut on accéder, à partir du controleur "Contenu"(child), à une méthode public du controleur "Contenant" (parent). l'invocation au sens inverse (parent -> child) est possible et très évidente.
    une autre remarque: la déclaration suivante (et je ne vois pas son utilité):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @FXML
    private Node includedContenu;
    ne peut pas être généré automatiquement.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut
    Citation Envoyé par bouye Voir le message
    Pas besoin de passer par un setter ; quand dans le FXML tu fais :
    Merci aussi pour ta réponse (que je n'avais pas vue dans un premier temps). Effectivement on est d'accord qu'on peut récupérer le contrôleur du fxml contenu dans le contrôleur du contenant.

    Mon plus gros problème était de récupérer le contrôleur du Contenant dans le contrôleur du contenu. Voilà qui est maintenant réglé.

    Alors vous pourriez vous demander pourquoi je dois faire ça ?

    J'ai en fait mon fxml contenant qui contient une tableView qui doit être filtrée par mon fxml contenu.
    Le filtre "contenu" doit pouvoir être réutilisé dans d'autres vues. Le filtre contient un bouton qui doit lancer une méthode située dans mon contrôleur Contenant.

    Merci donc à tous pour votre aide.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut
    Merci Win_ubuntu d'avoir apporté la solution à cette question.

    J'ai maintenant la possibilité d'agir sur le contenant à partir du contenu et vice versa !

    Je vais mettre tout le code nécessaire à l'exemple.

    Il y a une petite nuance par rapport au code que tu m'a soumis puisque le getter du contrôleur Contenu n'est plus nécessaire.

    Contenant.fxml
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
     
    <?import java.lang.*?>
    <?import javafx.scene.control.*?>
    <?import javafx.scene.layout.*?>
    <?import javafx.scene.layout.AnchorPane?>
     
    <AnchorPane prefHeight="400.0" prefWidth="400.0" style="-fx-background-color: red;" xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.ContenantController">
       <children>
        <fx:include fx:id="includedContenu" layoutX="100.0" layoutY="100.0" source="Contenu.fxml" />
          <Label fx:id="lblContenant"  layoutX="5.0" layoutY="10.0" text="Ceci est le contenant" />
          <Button layoutX="300.0" layoutY="350.0" mnemonicParsing="false" onAction="#handleButtonContenant" text="BtnContenant" />
       </children>
    </AnchorPane>
    Contenu.fxml
    Code : 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"?>
     
    <?import java.lang.*?>
    <?import javafx.scene.control.*?>
    <?import javafx.scene.layout.*?>
    <?import javafx.scene.layout.AnchorPane?>
     
    <AnchorPane prefHeight="200.0" prefWidth="200.0" style="-fx-background-color: yellow" xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.ContenuController">
       <children>
          <Label fx:id="lblContenu"  layoutX="5.0" layoutY="20.0" text="Ceci est le contenu" />
          <Button layoutX="105.0" layoutY="170.0" mnemonicParsing="false" onAction="#handleButtonContenu" text="BtnContenu" />
       </children>
    </AnchorPane>
    ContenantController.java
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    package application;
     
    import java.net.URL;
    import java.util.ResourceBundle;
     
    import javafx.event.ActionEvent;
    import javafx.fxml.FXML;
    import javafx.fxml.Initializable;
    import javafx.scene.control.Label;
    import application.ContenuController;
     
    public class ContenantController implements Initializable {
     
    	    @FXML
    	    private Label lblContenant;
     
     
    	    //puisque mon include contenu s'appelle "includedContenu", je peux accéder à son controleur
    	    //en définissant ci-dessous "includedContenuController"
    	    //C'est une règle de nommage, si le nom que je donne à mon Fxml inclus est:  "xxx"
    	    //ma variable DOIT s'appeler exactement : "xxxController"
    	    @FXML
    	    public ContenuController includedContenuController;
     
    	    @FXML
    	    private void handleButtonContenant(ActionEvent event) {
    	        System.out.println("You clicked Contenant Button!");
    	        setMyContenant("Bouton contenant poussé");
    	        //j'accède donc de mon Contenant au contrôleur de mon contenu
    	        includedContenuController.setMyContenu("Bouton contenant poussé");
    	    }
     
    	    @Override
    	    public void initialize(URL url, ResourceBundle rb) {
    	        // TODO
    	    }
     
    	    public void setMyContenant(String texteContenant){
     
    	    	lblContenant.setText(texteContenant);
     
    	    }
     
    	}
    ContenuController.java
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    package application;
     
    import java.net.URL;
    import java.util.ResourceBundle;
     
    import javafx.event.ActionEvent;
    import javafx.fxml.FXML;
    import javafx.fxml.Initializable;
    import javafx.scene.control.Label;
     
     
     
    public class ContenuController implements Initializable {
     
    	    @FXML
    	    private Label lblContenu;
     
    	    //variable d'instance de type ContenantController
    	    private ContenantController contenantController;
     
    	    @FXML
    	    private void handleButtonContenu(ActionEvent event) {
    	        System.out.println("You clicked Contenu Button!");
    	        setMyContenu("Bouton contenu poussé");
    	        contenantController.setMyContenant("Bouton contenu poussé");
     
    	    }
     
    	    @Override
    	    public void initialize(URL url, ResourceBundle rb) {
    	        // TODO
    	    }
     
    	    public void setMyContenu(String texteContenu){
     
    	    	lblContenu.setText(texteContenu);
     
    	    }
     
    	    //setter de ma variable contenantController
    	    //est appelé depuis le Main pour que le Controller Contenu connaisse le Controller Contenant
    	    public void setContenantController(ContenantController contenantController) {
    	        this.contenantController = contenantController;
    	    }
     
     
    	}
    et enfin, et pas le moins important..., le Main.java
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    package application;
     
    import javafx.application.Application;
    import javafx.fxml.FXMLLoader;
    import javafx.stage.Stage;
    import javafx.scene.Scene;
    import javafx.scene.layout.AnchorPane;
    import application.ContenantController;
     
     
    public class Main extends Application {
     
     
    	@Override
    	public void start(Stage primaryStage) {
    		try {
     
    			FXMLLoader loader = new FXMLLoader(getClass().getResource("Contenant.fxml"));
    			AnchorPane root = (AnchorPane) loader.load();
    			ContenantController contenantController = loader.getController();//ici j'obtiens le ContenantController
     
    			//j'injecte le controleur Contenant dans le controleur Contenu
    			//notez bien que j'accède directement à "includedContenuController" qui représente mon contrôleur Contenu dans mon controleur Contenant
     
    			contenantController.includedContenuController.setContenantController(contenantController);
     
    			Scene scene = new Scene(root,400,400);
    			scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
     
     
    			primaryStage.setScene(scene);
    			primaryStage.show();
    		} catch(Exception e) {
    			e.printStackTrace();
    		}
    	}
     
     
     
    	public static void main(String[] args) {
    		launch(args);
    	}
    }

  7. #7
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2010
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 212
    Par défaut
    Il y a une petite nuance par rapport au code que tu m'a soumis puisque le getter du contrôleur Contenu n'est plus nécessaire.
    puisque vous avez utilisé le modificateur de visibilité public (moi, j'ai utilisé private).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @FXML
     public ContenuController includedContenuController;
    si on souhaite respecter le principe d'encapsulation, il vaut mieux déclaré les attributs avec le modificateur de visibilité private
    remarque:
    Vous avez mis le même code dans les deux classes controller (copier/coller).

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut
    Voilà,
    J'ai remplacé directement le code "ContenuController" dans mon message précédent.
    Merci aussi pour la remarque sur l'encapsulation.


    J'en ai pris bonne note !




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

Discussions similaires

  1. Comment récupérer l'instance d'un web module
    Par BaldeckJ dans le forum Web & réseau
    Réponses: 0
    Dernier message: 08/03/2010, 16h03
  2. comment récupérer le nom des jobs qui roulent
    Par DEV-10 dans le forum Administration
    Réponses: 3
    Dernier message: 05/09/2009, 10h45
  3. Réponses: 4
    Dernier message: 27/07/2007, 20h34
  4. Comment récupérer une instance de Graphics::TGraphic ?
    Par Invité dans le forum C++Builder
    Réponses: 2
    Dernier message: 11/12/2006, 15h01
  5. Réponses: 2
    Dernier message: 14/09/2006, 18h53

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