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

AWT/Swing Java Discussion :

Splash Screen : Cadre gris à la place de l'image


Sujet :

AWT/Swing Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 53
    Points : 37
    Points
    37
    Par défaut Splash Screen : Cadre gris à la place de l'image
    Bonjour,

    Au lancement de mon IHM, j'affiche un Splash Screen, mais le problème est qu'une fois sur deux, quand je lance l'IHM, l'image n'apparait pas, j ai simplement un cadre gris à la place.

    J'ai une clase SplashScreenGUI qui extends JWindow, et après recherche, le code à l'air de se bloquer lors de l'appel à setVisible(true) de la classe Component (avant dernière ligne du code, désolée, c'est un peu long) :

    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
    public SplashScreenGUI() {
            super();
            File lfile = new File("images/splash.gif");
     
            try
            {
                image = ImageIO.read(lfile);
            }
            catch (IOException ioe)
            {
                System.out.println(ioe.getMessage());
            }
     
            // Recuperation des tailles de l'image
            int lImageWidth = image.getWidth();
            int lImageHeight = image.getHeight();
     
            updateText("Lancement Poste Operateur Visuel ...");
            panel.setBackground(new Color(240, 240, 240));
     
            jLabelIcon.setText("");
            jLabelIcon.setBounds(new Rectangle(0, 0, lImageWidth, lImageHeight));
            jLabelIcon.setHorizontalAlignment(SwingConstants.CENTER);
            jLabelIcon.setVerticalAlignment(SwingConstants.CENTER);
            jLabelIcon.setIcon(new ImageIcon("images/splash.gif"));
            panel.add(jLabelIcon, null);
     
            jLabelTitle.setHorizontalAlignment(SwingConstants.LEFT);
            jLabelTitle.setVerticalAlignment(SwingConstants.CENTER);
            jLabelTitle.setHorizontalTextPosition(SwingConstants.CENTER);
            jLabelTitle.setBackground(Color.WHITE);
            panel.add(jLabelTitle, BorderLayout.NORTH);
     
            toFront();
     
            setSize(new Dimension(lImageWidth, lImageHeight + 30));
     
            getContentPane().add(panel, null);
     
            setLocationRelativeTo(null);
            setVisible(true);
     
            Rectangle lwindowRect = panel.getBounds();
     
            splash = new BufferedImage(lImageWidth, lImageHeight, BufferedImage.TYPE_INT_ARGB);
     
            Graphics2D g2 = (Graphics2D) splash.getGraphics();
     
            try
            {
                Robot lRobot = new Robot(getGraphicsConfiguration().getDevice());
                BufferedImage lCapture = lRobot.createScreenCapture(new Rectangle(lwindowRect.x, lwindowRect.y,
                                                                                 lwindowRect.width,
                                                                                 lwindowRect.height));
     
                g2.drawImage(lCapture, null, 0, 0);
     
            }
            catch (AWTException e)
            {
                e.printStackTrace();
            }
     
            g2.drawImage(image, 0, 0, this);        
     
            setVisible(true);
     
            repaint();
        }
    setVisible appelle la méthode show() (dépréciée dans Eclipse 3.1).
    Est-ce que le problème peut bien venir de là ?

    Si je kill le process de l'IHM et que je relance, l'image apparaît bien et l'IHM se lance, donc je ne comprends pas...

    Merci !!!

  2. #2
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    Je trouve ta manière de faire un peu étrange.

    Voici quelques informations qui t'aideront :
    http://java.developpez.com/sources/?...enetres#splash
    http://java.developpez.com/sources/?...es#splashOmbre

    Bonne chance.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 53
    Points : 37
    Points
    37
    Par défaut
    Salut,

    En fait, ce n est pas moi qui ai codé ça, je reprends le code de la personne avant moi, donc je n ai pas trop le loisir de tout changer

    En tout cas, merci pour la réponse !

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 854
    Points : 22 876
    Points
    22 876
    Billets dans le blog
    51
    Par défaut
    Cela peut dependre de comment tu lances le splash depuis le main() : mieux vaut utiliser SwingUtilities.invokeLater() ou SwingUtilities.invokeAndWait() que de manipuler la fenetre directement dans le main() (chez moi ca marchait sous Windows, mais sous Linux ca plantait avec Java 1.5+).

    De plus il est tout simplement possible que tu bloques l'EDT empechant l'affichage de la fenetre et de l'image. N'hesite donc pas a decouper l'initialisation de ton programme en plusieurs petites partie grace a SwingUtilities.invokeLater() ce qui te permet de :

    - dans le main() bloquer pendant l'initialisation du splash et de l'appli (SwingUtilities.invokeAndWait()).
    - initialiser ton splash et l'afficher
    - plus tard (SwingUtilities.invokeLater()) lancer l'application.

    Ca peut permettre de lui laisser le temps de s'afficher a l'ecran entre temps.

    Alternativement, voir du cote de SwingWorker.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 53
    Points : 37
    Points
    37
    Par défaut
    Pour lancer mon splashscreen, je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SplashScreenGUI SplashScreen = null;
     
    SplashScreen = new SplashScreenGUI();
     
    if (SplashScreen != null)
            {
                SplashScreen.updateText("Chargement graphique : Creation des pages...");
            }
    Tu peux me dire comment je dois utiliser invokeLater ou invokeAndWait?
    Il faut que je lance mon Splashscreen à l'intérieur du Runnable de invokeAndWait, c'est ça ?

  6. #6
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 854
    Points : 22 876
    Points
    22 876
    Billets dans le blog
    51
    Par défaut
    Ca serait bien de voir surtout comment demarre l'application a partir du main() et comment s'enchainent la creation du splash et le demarrage de l'appli.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 53
    Points : 37
    Points
    37
    Par défaut
    Salut salut,

    alors dans le main, en résumé, ca donne :

    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
     
    public static void main(String[] pArgs) {
            try
            {
                UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
            }
            catch(Exception e)
            {
                e.printStackTrace();
            }
     
            int lLogLevel = PovLog.LOG_LEVEL_ERROR;
            boolean lActivateSplash = true;
     
            for(int i=0; i < pArgs.length; i++)
            {
                if (pArgs[i].equalsIgnoreCase("-NoSplash"))
                {
                    lActivateSplash = false;
                }
     
            }
     
            new PovMain(lLogLevel, lActivateSplash);
     
        }
    Dans PovMain :

    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
     
    public PovMain(int pLogLevel, boolean pActivateSplashScreen) {
            MyLog.SetLogLevel((byte)pLogLevel);
     
            Interface lFrame = new Interface(pActivateSplashScreen);
     
            // Valider les cadres ayant des tailles predefinies
            // Compacter les cadres ayant des infos de taille preferees - ex. depuis leur disposition
            if (packFrame)
            {
                lFrame.mainFrame.pack();
            }
            else
            {
                lFrame.mainFrame.validate();
            }
            // Centrer la fenêtre
            Dimension lScreenSize = Toolkit.getDefaultToolkit().getScreenSize();
            Dimension lFrameSize = lFrame.mainFrame.getSize();
            if (lFrameSize.height > lScreenSize.height)
            {
                lFrameSize.height = lScreenSize.height;
            }
            if (lFrameSize.width > lScreenSize.width)
            {
                lFrameSize.width = lScreenSize.width;
            }
            lFrame.mainFrame.setLocation((lScreenSize.width - lFrameSize.width) / 2, (lScreenSize.height - lFrameSize.height) / 2);
     
     
            if (pActivateSplashScreen == true)
            {
                while (!lFrame.isInitReceived())
                {
                    try{Thread.sleep(100);}catch(InterruptedException e){e.printStackTrace();}            
                }
            }
            lFrame.mainFrame.setVisible(true);
        }
    Apres, le code du Splash dans la Classe interface est celui que j'avais écrit dans mon message précédent

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 195
    Points : 115
    Points
    115
    Par défaut
    j'ai essayer chez moi et le probleme selon moi est que l'image n'a pas le temps de s'afficher ce qui explique pourquoi quand tu le relance l'image s'affiche

    essaye de regarder l'api et tout ce que ta dit bouyge parce que je m'y connait pas encore beaucoup

  9. #9
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 53
    Points : 37
    Points
    37
    Par défaut
    Désolée, si c est une question bete, mais est-ce que c est logique, si l image n a pas le temps de s afficher qu elle apparaisse une fois sur deux ? Puisque c est le meme code qui est lancé ?

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 195
    Points : 115
    Points
    115
    Par défaut
    ben quand tu lance une permiere fois elel a pas le temps donc elle s'affiche pas
    et la deuxieme fois elle a deja été charger un peu en memoire secondaire et donc a le temps de s'afficher

    si par contre apres elle ne se reaffiche pas alors ya un probleme plus subtil :p

    mais tu te rend bien compte que si ton code c'est le meme et qu'elle saffiche une fois sur deux c'est que la machine java ne comprend pas quelque chose une fois sur deux et sa c'est beaucoup plus grave

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 195
    Points : 115
    Points
    115
    Par défaut
    ps:aucune question n'est bete

  12. #12
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 53
    Points : 37
    Points
    37
    Par défaut
    La différence entre les 2 fois où je lance l'IHM, c'est peut-être la façon dont je l'ai quittée la fois d'avant (soit kill du process si ça a bloqué, soit quit propre). Peut-être que le kill fait que l'image reste chargée en mémoire...

    Donc en gros, je vais devoir trouver comment utiliser le InvokeAndWait

  13. #13
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 854
    Points : 22 876
    Points
    22 876
    Billets dans le blog
    51
    Par défaut
    Il peut y avoir des ralentissement et des temps d'initialisation plus ou moins longs qui font que dans certains cas l'image s'affiche. De plus, N'oubliez pas que l'EDT est une Thread différente de la Thread de celle du du main().

    Tout d'abord de base, comme ton main() manipule des objets graphiques, il serait bon de déporter cela dans l'EDT :

    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
    public static void main(final String[] pArgs) {
      SwingUtillities.invokeLater(new Runnable() {
        /** @inheritDoc
         */
        public void run() {
            try {
              UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
            }
            catch(Exception e) {
               e.printStackTrace();
            }        
            int lLogLevel = PovLog.LOG_LEVEL_ERROR;
            boolean lActivateSplash = true;    
            for(int i=0; i < pArgs.length; i++) {
              if (pArgs[i].equalsIgnoreCase("-NoSplash")) {
                lActivateSplash = false;
              }        
            }        
            new PovMain(lLogLevel, lActivateSplash);        
           }
        });
    }
    Note que le parsage des arguments n'étant pas graphique, il peut très bien rester dans le main().

    Mais cela ne devrait pas régler le problème, c'est principalement pour éviter certains problèmes sur certaines platformes (ex : Linux) où il peut ne pas faire bon de manipuler des composants graphiques hors de l'EDT.

    Ensuite ce qui m'embete c'est que ton splash se fait initialiser en même temps que ta fenêtre et que jamais il n'a le temps de s'afficher. Précédement il s'affichait de temps à autre car justement tu manipulais 2 threads en même temps (ce qu'il n'est pas bon de faire).

    De plus, si tu continue avec la modif que je t'ai indiquée le sleep() bloquera l'EDT ce qui n'est pas forcement une bonne chose (EDT bloquée = affichage gelé). Utiliser un timer Swing est alors une bonne idée. Je dirai un truc comme ca... mais bon ca demandera plus de tests, des tests et encore des tests :

    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
    public PovMain(int pLogLevel, boolean pActivateSplashScreen) {
      MyLog.SetLogLevel((byte)pLogLevel);
      final Interface lFrame = new Interface(pActivateSplashScreen);
      [...]
      if (pActivateSplashScreen == true) {
      //final Timer timer = new Timer(1000, null);
      //timer.addActionListener(new ActionListener()  {
      final Timer timer = new Timer(1000, new ActionListener()  {
        /** @inheritDoc
         */
        public void actionPerformed(ActionEvent event) {
           if (lFrame.isInitReceived()) {
             timer.stop();
             lFrame.mainFrame.setVisible(true);
           }
         });
         timer.setRepeats(true);
         timer.start();
       } 
       else {
         lFrame.mainFrame.setVisible(true);
       }
    }

  14. #14
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 53
    Points : 37
    Points
    37
    Par défaut
    Merci merci merci !!
    J essaierai ça dès que possible !

  15. #15
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 53
    Points : 37
    Points
    37
    Par défaut
    Re-Salut,

    Bon j'ai essayé d'intégrer ton code dans mon projet :

    1) pour le main, j ai bien ajouté le InvokeLater

    2) pour l'histoire du Timer, ce n'est pas possible d'utiliser "timer.stop()" dans la classe anonyme, puisqu elle ne connait pas timer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    final Timer timer = new Timer(1000, new ActionListener()  {
        /** @inheritDoc
         */
        public void actionPerformed(ActionEvent event) {
           if (lFrame.isInitReceived()) {
             timer.stop(); // erreur
             lFrame.mainFrame.setVisible(true);
           }
         });
    Donc finalement, voilà mon code final (non testé), si jamais tu vois une grosse bétise

    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
     
    public class PovMain {
     
        final Interface lFrame;
     
        final private TimerListener monTimerListener = new TimerListener();
        Timer monTimer = null;
     
        public PovMain(int pLogLevel, boolean pActivateSplashScreen) {
            // Instanciation du singleton de log
            PovLog MyLog = PovLog.GetLogSingleton();
            MyLog.SetLogLevel((byte)pLogLevel);
     
            lFrame = new Interface(pActivateSplashScreen);
     
    [...]        
            if (pActivateSplashScreen == true)
            {
                monTimer = new Timer(100, monTimerListener);
                monTimer.setRepeats(true);
                monTimer.start();
            }
            else
            {
                lFrame.mainFrame.setVisible(true);
            }
        }
    et puis, toujours dans la classe PovMain :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    class TimerListener implements java.awt.event.ActionListener {
            TimerListener() {
            }
     
            public void actionPerformed(ActionEvent e) {
                if (lFrame.isInitReceived())
                {
                    monTimer.stop();
                    lFrame.mainFrame.setVisible(true);
                }
            }
        }
    Ca parait correct ou pas du tout ?

    Bye bye !

  16. #16
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    Tout cela m'a l'air bien compliqué pour un simple SplashScreen...

    Pour ne pas tout simplement faire une classe qui étend JWindow et qui affiche une image ? Personnellement, je fais ceci, ça fonctionne très bien :
    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
    import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.MediaTracker;
    import java.io.File;
     
    import javax.swing.JWindow;
     
    import org.janitrix.ui.SwingToolkit;
     
    public class SplashScreen extends JWindow {
     
    	Image background;
    	final static long serialVersionUID = 001;
     
    	public SplashScreen() {
    		background = getToolkit().createImage("Images" + File.separator + "Crisimos.png");
    		try { 
    			MediaTracker mTrack = new MediaTracker(this);
                mTrack.addImage(background, 0);
                mTrack.waitForAll();
            }catch(Exception e) { 
            	SwingToolkit.showError(this, "Erreur durant l'initialisation !", "Erreur - Crisinos");
            }
     
            setSize(300, 400);
            setLocationRelativeTo(this);
            setVisible(true);
    	}
     
    	public void paint(Graphics comp) {
    		comp.drawImage(background, 0, 0, 300, 400, this);
    	}
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
    		new Crisimos(new SplashScreen());
    	}
    }
    La classe Crisimos est ma JFrame principale, et quand j'ai fini d'initialiser tous les composants (l'opération la plus longue en faite), j'affiche ma fenêtre et je détruit la classe SplashScreen :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //...
    public Crisimos(SplashScreen splash) {
    // initialisation des composants graphiques et autres opérations longues...
    // ...
    splash.dispose();
    setVisible(true);
    }
    Je ne suis pas sûr que cela soit propre de faire de cette manière, si un professionnel pouvait m'éclairer sur ce point. En tout cas, cela fonctionne très bien et les performances sont bonnes (aucun problème de ralentissement, de perte de qualité d'image ou quoi que ce soit).

  17. #17
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 854
    Points : 22 876
    Points
    22 876
    Billets dans le blog
    51
    Par défaut
    Citation Envoyé par LinoaHeart
    pour l'histoire du Timer, ce n'est pas possible d'utiliser "timer.stop()" dans la classe anonyme, puisqu elle ne connait pas timer :
    Non, l'erreur, s'il y a est, est que timer n'est pas initialise car timer ayant ete declare final il est tout a fait possible de l'utiliser dans une classe anonyme. Si l'erreur est bien un probleme d'initialisation, il faut utiliser les deux lignes commentees a la place. Alternativement timer est egalement la source de l'evenement donc on devrait pouvoir faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Timer timer = (Timer)event.getSource();
    Citation Envoyé par LinoaHeart
    Ca parait correct ou pas du tout ?
    Ah mais c'est a toi de dire si ca fonctionne ou pas puisque je ne peux pas tester moi-meme.

    Janitrix globablement c'est ce que je fais moi dans mes applications (mais pas avec Tooltkit). Mais le probleme est qu'il semble utiliser un framework (maison) un peu plus evolue qui prend en charge directement l'initialisation du slashscreen. Dans son cas a lui, il faut juste arriver a trouver comment corriger la maniere dont se comporte le framework.

  18. #18
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 53
    Points : 37
    Points
    37
    Par défaut
    D'accord, merci !
    J'essaierai tout ça dès que possible

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

Discussions similaires

  1. Mettre en place un Splash Screen
    Par anubis62 dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 23/10/2009, 20h48
  2. Cadre blanc splash screen
    Par shub dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 23/05/2007, 16h54
  3. Comment faire un splash screen pour son application?
    Par tscoops dans le forum C++Builder
    Réponses: 4
    Dernier message: 26/04/2007, 14h28
  4. [DX9] Splash Screen
    Par delire8 dans le forum DirectX
    Réponses: 6
    Dernier message: 03/06/2004, 10h30
  5. affichage de controles sur un splash screen
    Par shrek dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/11/2003, 19h59

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