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

SDL Discussion :

Problème Affichage Surface


Sujet :

SDL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 9
    Points : 8
    Points
    8
    Par défaut Problème Affichage Surface
    Bonjour,

    Aussi anodin qu'il y paraît, j'ai un énorme problème pour afficher l'image de mon Pacman. Et pourtant, tout fonctionnait hier soir.

    Depuis, je n'ai pas fais de modifications majeures (simplement agrandit la longueur de l'écran pour ajouter du texte ) et je viens de passer quelques heures sur ce problème. Je suis déséspéré...

    Quelqu'un peut-il me venir en aide ?

    Mon code source est en pièce jointe : il est clair et documenté. Les dlls SDL_image, SDL_TTF et la police Arial sont à ajouter au projet (mais je vous conseille simplement de désactiver le texte).

  2. #2
    Membre habitué Avatar de Metal Tom
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 119
    Points : 129
    Points
    129
    Par défaut
    Je doute que quelqu'un te réponde si tu n'as pas de questions plus précise que « c'est quoi qui ne marche pas dans mon programme ? »
    Tom

  3. #3
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 369
    Points : 40 164
    Points
    40 164
    Par défaut
    Bien le bonjour,

    On ne pourra pas vraiment t'aider. Personne n'ira se plonger dans ta vingtaine de Ko de code.
    Tu n'as pas une version datant d'il y a quelques jours ?

    Si ça marchait hier soir, tu as bien dû changer quelque chose qu'il ne fallait pas.

  4. #4
    Membre confirmé
    Avatar de Mindiell
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 735
    Points : 546
    Points
    546
    Par défaut
    Tu as agrandi la surface de l'ecran ?
    Ton pac-man pourrait-il etre caché par une autre surface ?
    Ton pac-man a-t-il le même format SDL que ton ecran ?
    Mindiell
    "Souvent, femme barrit" - Elephant man

  5. #5
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par Metal Tom
    Je doute que quelqu'un te réponde si tu n'as pas de questions plus précise que « c'est quoi qui ne marche pas dans mon programme ? »
    A coup de gdb et de compilation, on peut regarder vite fait

    D'abord, félicitations, ton code est relativement propre dans le sens qu'on a très peu de warnings lorsque je compile :

    g++ -c Couleur.cpp -O3 `sdl-config --cflags` -Wall -I/usr/local/include/SDL -Wextra -g
    g++ -c Ennemi.cpp -O3 `sdl-config --cflags` -Wall -I/usr/local/include/SDL -Wextra -g
    g++ -c Hero.cpp -O3 `sdl-config --cflags` -Wall -I/usr/local/include/SDL -Wextra -g
    In file included from Hero.h:12,
    from Hero.cpp:1:
    Score.h:20:7: warning: no newline at end of file
    Hero.cpp: In member function ‘void Hero::seDeplacer(Direction)’:
    Hero.cpp:97: warning: enumeration value ‘POSCOURANTE’ not handled in switch
    g++ -c Labyrinth.cpp -O3 `sdl-config --cflags` -Wall -I/usr/local/include/SDL -Wextra -g
    In file included from Hero.h:12,
    from Labyrinth.h:6,
    from Labyrinth.cpp:13:
    Score.h:20:7: warning: no newline at end of file
    g++ -c main.cpp -O3 `sdl-config --cflags` -Wall -I/usr/local/include/SDL -Wextra -g
    In file included from main.cpp:6:
    Score.h:20:7: warning: no newline at end of file
    main.cpp: In function ‘int main(int, char**)’:
    main.cpp:20: warning: missing initializer for member ‘SDL_Color::unused’
    main.cpp:20: warning: missing initializer for member ‘SDL_Color::unused’
    main.cpp: At global scope:
    main.cpp:12: warning: unused parameter ‘argc’
    main.cpp:12: warning: unused parameter ‘argv’
    g++ -c Position.cpp -O3 `sdl-config --cflags` -Wall -I/usr/local/include/SDL -Wextra -g
    In file included from Hero.h:12,
    from Position.cpp:6:
    Score.h:20:7: warning: no newline at end of file
    g++ -c Score.cpp -O3 `sdl-config --cflags` -Wall -I/usr/local/include/SDL -Wextra -g
    In file included from Score.cpp:1:
    Score.h:20:7: warning: no newline at end of file
    Score.cpp:30:2: warning: no newline at end of file
    Score.cpp:19: warning: unused parameter ‘up’
    g++ -o main Couleur.o Ennemi.o Hero.o Labyrinth.o main.o Position.o Score.o -O3 `sdl-config --cflags` -Wall -I/usr/local/include/SDL -Wextra -g `sdl-config --libs` -lGL -lSDL_image -lSDL_ttf
    Par contre, il faut rajouter un cas default dans ton main pour la gestion du clavier sinon il ne sera pas content... (certes c'est un détail mais bon)

    Mais félicitations sur un code provenant visiblement de Windows qui compile sans problème sous Linux

    Par contre, avec gdb, on voit tout de suite que ton code plante ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #1  0x0804ac4f in main (argc=1, argv=0xbfaaf064) at main.cpp:38
    38              TTF_SetFontStyle(police1,TTF_STYLE_ITALIC);
    En regardant plus près, police1 valait NULL donc je suis allé voir le code :

    En regardant ton code du main, je suis tombé sur ceci :
    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
     
        // Initialisation mode video & Ecran
        SDL_Init(SDL_INIT_AUDIO);
        ecran = SDL_SetVideoMode((19*TAILLE_BLOC),((21*TAILLE_BLOC)+2*TAILLE_BLOC),32,SDL_HWSURFACE | SDL_DOUBLEBUF);
        SDL_WM_SetCaption("SupinfoPacman", NULL);
        SDL_FillRect(ecran,NULL,SDL_MapRGB(ecran->format,0,0,0));
     
        // Initialisation Score
        Score scoring(0);
     
        // Initialisation Texte 
        TTF_Font *police1 = NULL;
        TTF_Init();
        police1 = TTF_OpenFont("arial.ttf",40);
        TTF_SetFontStyle(police1,TTF_STYLE_ITALIC);
    1) Où sont les tests pour vérifier le bon fonctionnement des fonctions ? En priorité, SDL_Init, TTF_Init, TTF_OpenFont, SDL_SetVideoMode ?
    2) PollEvent ne s'utilise pas comme tu l'utilises, on teste le retour ou alors on l'encapsule dans un while (c'est mieux)
    3) Plus grave : tu initialise SDL avec seulement AUDIO... pour faire quelque chose de graphique, ce n'est pas génial.
    4) et arial.ttf n'était pas dans le .rar, c'est là le problème actuel...

    Voilà,
    Jc

    PS: Je n'ai pas tout regardé...

    EDIT : ajout du point 4

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Hello,

    Difficile malheureusement de faire autrement que de vous proposer le code. Il aurait peut-être marché chez vous ce qui m'aurait orienté que j'avais des problèmes sur ma machine

    fearyourself, merci d'avoir pris le temps d'y jeter un oeil. J'ai bien pris compte de tes remarques et je les ai appliqué sur mon projet. ;-) Par contre, j'avais précisé que la police arial n'était pas dans le projet ^^

    Seulement, après plusieurs jours de recherche, le problème est identique et n'est pas résolu. Selon sa position, Pacman apparaît au début puis disparaît. Parfois, il n'apparaît pas du tout (toujours selon sa position).

    J'ai donc "écrémé" méchamment le code pour n'avoir qu'un Pacman qui se déplacerait vers la gauche, sans qu'aucune intervention avec l'utilisateur ne soit possible. Le labyrinthe est également désactivé (sous forme d'un labyrinthe) donc une surface ne peut pas être sur l'autre. J'ai également redimensionné l'écran à sa taille initiale.

    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
    71
    72
    73
    74
    75
    int main(int argc, char *argv[])
    {
    	SDL_Surface *ecran = NULL;
    	SDL_Event event;
    	bool boucleJeu = true;
    	int tempsPrecedent = 0, tempsActuel = 0;
    	Direction direction = GAUCHE;	
     
    	// Initialisation mode video & Ecran
    	if ( SDL_Init( SDL_INIT_VIDEO ) < 0 )
              {fprintf( stderr, "Impossible d'initialiser SDL: %s\n", SDL_GetError() );
              return -1;}
    	ecran = SDL_SetVideoMode((19*TAILLE_BLOC),(21*TAILLE_BLOC),32,SDL_HWSURFACE | SDL_DOUBLEBUF);
    	     if ( ecran == NULL )
             {fprintf(stderr,"Impossible de configurer avec la résolution vidéo proposée: %s\n", SDL_GetError());
             return -1;}
        SDL_WM_SetCaption("SupinfoPacman", NULL);
    	SDL_FillRect(ecran,NULL,SDL_MapRGB(ecran->format,0,0,0));
     
    	// Initialisation Score
    	Score scoring(0);
     
    	// Initialisation Pacman puis affichage
    	Hero pacman(ecran->w/2-TAILLE_BLOC,ecran->h-6*TAILLE_BLOC,scoring);
    	pacman.afficheSDL(ecran);
     
    	// Initialisation Labyrinthe
    //	string map = "####################        #        ## ## ### # ### ## ##                 ## ## # ##### # ## ##    #   #   #    ##### ### # ### ######## #       # ######## # ##### # ####       #####       #### # ##### # ######## #       # ######## # ##### # #####        #        ## ## ### # ### ## ##  #           #  ### # # ##### # # ###    #   #   #    ## ###### # ###### ##                 ####################";
    //	Labyrinth lab1(19,21,map);
    //	lab1.afficheSDL(ecran);
    	pacman.afficheSDL(ecran);
    	SDL_Flip(ecran);	
     
    	// Touche pressé
    	SDL_EnableKeyRepeat(10,10);
     
    	// Boucle de Jeu // 
    	while(boucleJeu){
     
    	tempsActuel = SDL_GetTicks();
    	if (tempsActuel - tempsPrecedent > 30) /* Si 30 ms se sont écoulées */
    	{	
    	while(SDL_PollEvent(&event)){
     
    	switch(event.type){
    		case SDL_QUIT : 
    			boucleJeu = false;
    			break;
    		case SDL_KEYDOWN :
    			switch(event.key.keysym.sym){
    				case SDLK_ESCAPE :
    					boucleJeu = false;
    					break;				}
    	}
    	}
     
     
    	}
     
    	pacman.seDeplacer(direction);
    	tempsPrecedent = tempsActuel; 
     
     
    		// Actualisation de l'écran
    		SDL_FillRect(ecran,NULL,SDL_MapRGB(ecran->format,0,0,0)); // Ecran
    		pacman.afficheSDL(ecran); // Affichage Pacman
    //		lab1.afficheSDL(ecran); // affichage Labyrinthe
    		SDL_Flip(ecran);
    	}	
     
    	pacman.liberationMemoireHero();
    //	lab1.liberationMemoireLabyrinth();
    	SDL_Quit();
    	return EXIT_SUCCESS;
    }
    Méthode Déplacer() du Pacman :
    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
    void Hero::seDeplacer(Direction dir){
    	switch(dir){
    		case GAUCHE :
    			positionCourante.x-=vitesse;
    			break;
    		case DROITE :
    			positionCourante.x+=vitesse;
    			break;
    		case HAUT :
    			positionCourante.y-=vitesse;
    			break;
    		case BAS :
    			positionCourante.y+=vitesse;
    			break;
    	}
    }

    Quelqu'un peut-il me dévoiler la vérité vraie ? Tout simplement, est-ce que ce code fonctionne chez vous (le projet est livré malheureusement sans les libraires)?

    Pacman.rar

  7. #7
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Ok quelques remarques :

    - Bien que tu aies fait un effort pour les tests, ton code est horrible à lire. Il faut savoir indenter du code et l'aérer pour le rendre lisible.

    - Ensuite dans le main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        pacman.afficheSDL(ecran);
     
        // Initialisation Labyrinthe
        //  string map = "####################        #        ## ## ### # ### ## ##                 ## ## # ##### # ## ##    #   #
        //  Labyrinth lab1(19,21,map);
        //  lab1.afficheSDL(ecran);
        pacman.afficheSDL(ecran);
        SDL_Flip(ecran);
    C'est inutile d'afficher quelque chose avant la boucle générale, cela complique le code pour vraiment pas grand chose.

    - Tu limites l'accès au SDL_PollEvent... Mauvaise idée, cela va agrandir le temps de réponse de l'application lorsqu'on veut faire quelque chose.

    - Tu as encore oublié le cas default dans le switch

    - Aucune variable ou define ne doit commencer par '_', c'est réservé comme nomenclature

    - Hero.cpp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        pacman[GAUCHE] = IMG_Load("pacmanGauche.PNG");
        pacman[DROITE] = IMG_Load("pacmanDroite.PNG");
        pacman[BAS] = IMG_Load("pacmanBas.PNG");
        pacman[HAUT] = IMG_Load("pacmanHaut.PNG");
        pacmanActuel = pacman[GAUCHE];
    Où sont les tests pour vérifier que le chargement s'est bien passé ?
    Ensuite quand on regarde ta déclaration de pacman, on voit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        SDL_Surface *pacmanActuel, *pacman[4];
    Ok mais la première question est : Quelles sont les valeurs de GAUCHE, DROITE, BAS, HAUT ??

    Et on trouve :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        typedef enum ListeDesDirections {POSCOURANTE,HAUT,BAS,GAUCHE,DROITE}  Direction;
    Et là on se dit : ARGGGGG! Qui a fait ca ???

    A la limite ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    typedef enum ListeDesDirections {HAUT=0,BAS,GAUCHE,DROITE, POSCOURANTE, MAX_POS}  Direction;
    Ceci permet d'être sûr que HAUT commence à 0, ce sera incrémenté pour les autres et MAX_POS sera assez grand. Du coup, la déclaration du tableau deviendra :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SDL_Surface *pacmanActuel, *pacman[MAX_POS];
    Ceci nous permettra d'ajouter des directions sans devoir réfléchir au code.

    Et c'est là ton problème... Tu dépassais le tableau...

    Voili voilou,
    Par contre, pour la prochaine fois, il faudra donner un code correctement indenter et aérer. Exemple de ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        // Initialisation mode video & Ecran
        if ( SDL_Init( SDL_INIT_VIDEO ) < 0 )
              {fprintf( stderr, "Impossible d'initialiser SDL: %s\n", SDL_GetError() );
              return -1;}
        ecran = SDL_SetVideoMode((19*TAILLE_BLOC),(21*TAILLE_BLOC),32,SDL_HWSURFACE | SDL_DOUBLEBUF);
             if ( ecran == NULL )
             {fprintf(stderr,"Impossible de configurer avec la résolution vidéo proposée: %s\n", SDL_GetError());
             return -1;}
        SDL_WM_SetCaption("SupinfoPacman", NULL);
        SDL_FillRect(ecran,NULL,SDL_MapRGB(ecran->format,0,0,0));
    Exemple du mien :

    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
     
        // Initialisation mode video & Ecran
        if ( SDL_Init( SDL_INIT_VIDEO ) < 0 ) {
            fprintf( stderr, "Impossible d'initialiser SDL: %s\n", SDL_GetError() );
            return -1;
        }
     
        ecran = SDL_SetVideoMode((19*TAILLE_BLOC),(21*TAILLE_BLOC),32,SDL_HWSURFACE | SDL_DOUBLEBUF);
        if ( ecran == NULL ) {
            fprintf(stderr,"Impossible de configurer avec la résolution vidéo proposée: %s\n", SDL_GetError());
            return -1;
        }
     
        SDL_WM_SetCaption("SupinfoPacman", NULL);
        SDL_FillRect(ecran,NULL,SDL_MapRGB(ecran->format,0,0,0));
    Jc

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Merci, merci et encore merci ! Merci de passer autant de temps à aider les néophytes comme moi sur ce forum.

    J'ai donc bien pris en compte des remarques. J'ai corrigé ces erreurs... pour finalement m'embourber dans d'autres. Mais après quelques heures, tout est finalement retourner dans l'ordre. L'indentation y joue pour beaucoup, c'est vrai. Je me suis laissé un peu aller au gré des différentes modifications. Tout est plus clair maintenant.

    Je me pose à présent 2 petites questions :
    - Mon énumération Direction t'a choqué. Si ta solution est clairement mieux optimisé (et je t'en remercie encore !), comment s'y prend t-on généralement pour gérer ce systéme ?
    - J'ai essayé de comprendre pourquoi l'on utilisait un while pour gérer PollEvent. Je suis d'ailleurs retombé sur une de tes explications sur un ancien topic : http://www.developpez.net/forums/sho...d.php?t=236895
    Si j'ai bien compris, on n'appellera pas inutilement la gestion du clavier et cela fais donc gagner des ressources processeurs. J'ai bon ? Par contre, je ne suis pas certain de bien comprendre cette remarque :

    "Tu limites l'accès au SDL_PollEvent... Mauvaise idée, cela va agrandir le temps de réponse de l'application lorsqu'on veut faire quelque chose."

  9. #9
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par kaien
    Merci, merci et encore merci ! Merci de passer autant de temps à aider les néophytes comme moi sur ce forum.
    c'est gentil

    J'ai donc bien pris en compte des remarques. J'ai corrigé ces erreurs... pour finalement m'embourber dans d'autres. Mais après quelques heures, tout est finalement retourner dans l'ordre. L'indentation y joue pour beaucoup, c'est vrai. Je me suis laissé un peu aller au gré des différentes modifications. Tout est plus clair maintenant.
    Ben oui, un code propre est plus facile à comprendre et corriger.

    Je me pose à présent 2 petites questions :
    - Mon énumération Direction t'a choqué. Si ta solution est clairement mieux optimisé (et je t'en remercie encore !), comment s'y prend t-on généralement pour gérer ce systéme ?
    Généralement, comme t'as fait sauf qu'on fait attention à l'ordre dans l'enum. C'est la solution la plus simple possible.

    - J'ai essayé de comprendre pourquoi l'on utilisait un while pour gérer PollEvent. Je suis d'ailleurs retombé sur une de tes explications sur un ancien topic : http://www.developpez.net/forums/sho...d.php?t=236895
    Si j'ai bien compris, on n'appellera pas inutilement la gestion du clavier et cela fais donc gagner des ressources processeurs. J'ai bon ?
    Non, lorsque ton programme tourne, il se peut que tu aies plusieurs événements en attente... Un while permet simplement de les gérer tous.

    Par contre, je ne suis pas certain de bien comprendre cette remarque :

    "Tu limites l'accès au SDL_PollEvent... Mauvaise idée, cela va agrandir le temps de réponse de l'application lorsqu'on veut faire quelque chose."
    En mettant une temporisation sur l'appel SDL_PollEvent, il y a un temps d'attente entre le moment où j'appuie sur une touche et le moment où l'application le recoit vraiment.
    Et encore, je suppose que la SDL se débrouille pour ne pas faire déborder la pile d'événements donc s'il y en a trop en attente, il vire les derniers. C'est donc pas génial.

    Jc

Discussions similaires

  1. Réponses: 10
    Dernier message: 08/06/2009, 11h30
  2. problème affichage image
    Par thealpacino dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 30/05/2005, 13h56
  3. Problème affichage primitive
    Par goutbouyo dans le forum DirectX
    Réponses: 4
    Dernier message: 29/12/2004, 18h25
  4. [Plugin][VE] Problème affichage
    Par sebb84 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 05/07/2004, 14h50
  5. [DOS] Problème affichage de DOS dans un Memo
    Par Pedro dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 25/06/2004, 13h31

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