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 :

Bug d'affichage d'un tableau 2D [SDL 1.2]


Sujet :

SDL

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 22
    Points : 19
    Points
    19
    Par défaut Bug d'affichage d'un tableau 2D
    Salut à tous, je réalise actuellement un projet de jeu (un "jeu de la vie" en quelque sorte(faire évoluer des espèces dans un écosysteme)) et je soupçonne un bug dans l'affichage : en effet nous avons commencé la création du programme avec une taille définie dans le tableau : 40. Le programme est censé marcher pour une autre taille mais voilà, si on change la taille il se met à déformer (ex : la terre est censée etre uniquement et sur toutes les cases des bords et la elle se retrouve au milieu...), si on agrandit le tableau censé etre carré, il devient rectangle.. Il faut préciser que nous n'avions pas eu ces problemes lors d'un affichage console (ce qui laisse suggérer que le module d'affichage est en cause). Pourriez-vous me dire les erreurs de ce code (je soupçonne aussi un problème de libération mémoire) et si l'erreur se trouve bien dans ce module ou dans un autre? Merci

    (Cette fonction affiche l'ecosysteme, on appelle à chaque tour pour visualiser les mouvements, actions...)



    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
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
     
    #include<stdio.h>
    #include<stdlib.h>
    #include<SDL/SDL.h>
    #include<unistd.h>
    #include"environnement.h"
    #include"grid_pecheur.h"
    #include"affichage.h"
    #define LARGEUR 720
    #define HAUTEUR 720
     
    void affichage(info_pecheur *pecheur){
    	int i,j;
    	SDL_Surface *ecran=NULL, *terre=NULL, *eau=NULL, *plancton=NULL, *corail=NULL, *bar=NULL, *thon=NULL, *pollution=NULL, *piranah=NULL, *requin=NULL, *orque=NULL, *baleine=NULL, *pont=NULL;
    	SDL_Rect position;
     
     
     
    	ecran=SDL_SetVideoMode(LARGEUR,HAUTEUR,32, SDL_HWSURFACE);
    	SDL_WM_SetCaption("jeu du pecheur",NULL);
    	SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format,255,255,255));
     
     
    	terre = SDL_CreateRGBSurface(SDL_HWSURFACE,(LARGEUR/tailletab),(HAUTEUR/tailletab), 32,0,0,0,0);
    	eau = SDL_CreateRGBSurface(SDL_HWSURFACE,(LARGEUR/tailletab),(HAUTEUR/tailletab), 32,0,0,0,0);
    	plancton = SDL_CreateRGBSurface(SDL_HWSURFACE,(LARGEUR/tailletab),(HAUTEUR/tailletab), 32,0,0,0,0);
    	corail = SDL_CreateRGBSurface(SDL_HWSURFACE,(LARGEUR/tailletab),(HAUTEUR/tailletab), 32,0,0,0,0);
    	bar = SDL_CreateRGBSurface(SDL_HWSURFACE,(LARGEUR/tailletab),(HAUTEUR/tailletab), 32,0,0,0,0);
    	thon = SDL_CreateRGBSurface(SDL_HWSURFACE,(LARGEUR/tailletab),(HAUTEUR/tailletab), 32,0,0,0,0);
    	pollution = SDL_CreateRGBSurface(SDL_HWSURFACE,(LARGEUR/tailletab),(HAUTEUR/tailletab), 32,0,0,0,0);
    	piranah = SDL_CreateRGBSurface(SDL_HWSURFACE,(LARGEUR/tailletab),(HAUTEUR/tailletab), 32,0,0,0,0);
    	requin = SDL_CreateRGBSurface(SDL_HWSURFACE,(LARGEUR/tailletab),(HAUTEUR/tailletab), 32,0,0,0,0);
    	orque = SDL_CreateRGBSurface(SDL_HWSURFACE,(LARGEUR/tailletab),(HAUTEUR/tailletab), 32,0,0,0,0);
    	baleine = SDL_CreateRGBSurface(SDL_HWSURFACE,(LARGEUR/tailletab),(HAUTEUR/tailletab), 32,0,0,0,0);
    	pont = SDL_CreateRGBSurface(SDL_HWSURFACE,(LARGEUR/tailletab),(HAUTEUR/tailletab), 32,0,0,0,0);
     
     
     
     
     
     
     
     
     
     
     
    	SDL_FillRect(terre, NULL, SDL_MapRGB(terre->format,160,82,45));
    	SDL_FillRect(eau, NULL, SDL_MapRGB(eau->format,65,105,255));
    	SDL_FillRect(plancton, NULL, SDL_MapRGB(plancton->format,50,205,50));
    	SDL_FillRect(corail, NULL, SDL_MapRGB(corail->format,255,127,80));
    	SDL_FillRect(bar, NULL, SDL_MapRGB(bar->format,154,205,50));
    	SDL_FillRect(thon, NULL, SDL_MapRGB(thon->format,153,50,204));
    	SDL_FillRect(pollution, NULL, SDL_MapRGB(pollution->format,128,128,128));
    	SDL_FillRect(piranah, NULL, SDL_MapRGB(piranah->format,255,0,0));
    	SDL_FillRect(requin, NULL, SDL_MapRGB(requin->format,102,205,170));
    	SDL_FillRect(orque, NULL, SDL_MapRGB(orque->format,47,79,79));
    	SDL_FillRect(baleine, NULL, SDL_MapRGB(baleine->format,0,128,128));
    	SDL_FillRect(pont, NULL, SDL_MapRGB(pont->format,255,255,0));
     
    	for(i=0;i<tailletab;i++){
    		for(j=0;j<tailletab;j++){
    			position.x=(LARGEUR/tailletab)*i;
    			position.y=(HAUTEUR/tailletab)*j;
    			switch(tab[i][j].id){
    				case -1:
    					SDL_BlitSurface(terre, NULL,ecran, &position);
    					break;
    				case 0:
    					SDL_BlitSurface(eau, NULL,ecran, &position);
    					break;
    				case 1:
    					SDL_BlitSurface(plancton, NULL,ecran, &position);
    					break;
    				case 2:
    					SDL_BlitSurface(corail, NULL,ecran, &position);
    					break;
    				case 3:
    					SDL_BlitSurface(bar, NULL,ecran, &position);
    					break;
    				case 4:
    					SDL_BlitSurface(thon, NULL,ecran, &position);
    					break;
    				case 5:
    					SDL_BlitSurface(pollution, NULL,ecran, &position);
    					break;
    				case 6:
    					SDL_BlitSurface(piranah, NULL,ecran, &position);
    					break;
    				case 7:
    					SDL_BlitSurface(requin, NULL,ecran, &position);
    					break;
    				case 8:
    					SDL_BlitSurface(orque, NULL,ecran, &position);
    					break;
    				case 9:
    					SDL_BlitSurface(baleine, NULL,ecran, &position);
    					break;
    				case 11:
    					SDL_BlitSurface(pont, NULL,ecran, &position);
    					break;
    			}
    		}
    	}
    	//affichage_pecheur(pecheur, ecran);
     
    	SDL_Flip(ecran);
     
     
    }

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Premier problème : ne pas faire la création des surfaces à chaque appel à la fonction d'affichage.
    Ni même la création de la fenêtre.

    Vous indiquez SDL 2, mais vous utilisez la SDL 1.2. Elles sont différentes, comme vous pouvez le voir dans ces tutoriels.

    Vous devriez sauvegarder LARGEUR/tailletab (et son équivalent pour la hauteur) dans une variable.

    Je pense que vous avez une inversion entre les x et les y. Mais en soit, sur les tableaux carrés, ce n'est pas grave.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 22
    Points : 19
    Points
    19
    Par défaut
    Bonjour et merci de votre réponse.
    Effectivement je me suis trompé c'est bien de la 1.2, j'avais la tête ailleurs...

    Il y avait en effet un problème de superposition des surfaces. J'obtiens le code suivant :

    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
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
     
    void affichage(info_pecheur **tabjoueur, int nb_joueur,SDL_Surface *ecran, SDL_Surface **tabSurface){
    	int i,j;
    	int num_S;
    	int largeur_case=HAUTEUR/tailletab;
    	int hauteur_case=HAUTEUR/tailletab;
    	SDL_Surface *legende=NULL;
    	SDL_Rect position,pos_legende;
    	pos_legende.x=HAUTEUR;
    	pos_legende.y=0;
     
     
    	//creation d'une surface afficher les stats
    	legende=IMG_Load("legende.jpg");
     
    	SDL_BlitSurface(legende,NULL,ecran,&pos_legende);
     
     
     
     
    	//ajout des especes sur la surface jeu
    	for(i=0;i<tailletab;i++){
    		for(j=0;j<tailletab;j++){
    			position.x=largeur_case*i;
    			position.y=hauteur_case*j;
    			num_S=tab[i][j].id+1;
     
    			SDL_BlitSurface(tabSurface[num_S], NULL,ecran, &position);
     
    			}
    		}
     
    	for(i=0; i<nb_joueur;i++){
    		affichage_pecheur(tabjoueur[i],i, ecran, largeur_case, hauteur_case);
    		affichage_sac(tabjoueur[i], ecran, i);	
    	}
     
     
    	SDL_Flip(ecran);
     
     
    }
     
    void initSurface(SDL_Surface **tabSurface){
    	int largeur_case=HAUTEUR/tailletab;
            int hauteur_case=HAUTEUR/tailletab;
            SDL_Surface *terre, *eau, *plancton, *corail, *bar, *thon, *pollution, *piranah, *requin, *orque, *baleine, *pecheur, *pont;
     
    	      //création de rectangle pour symboliser une espece
            terre = SDL_CreateRGBSurface(SDL_HWSURFACE,largeur_case,hauteur_case, 32,0,0,0,0);
            eau = SDL_CreateRGBSurface(SDL_HWSURFACE,largeur_case,hauteur_case, 32,0,0,0,0);
            plancton = SDL_CreateRGBSurface(SDL_HWSURFACE,largeur_case,hauteur_case, 32,0,0,0,0);
            corail = SDL_CreateRGBSurface(SDL_HWSURFACE,largeur_case,hauteur_case, 32,0,0,0,0);
            bar = SDL_CreateRGBSurface(SDL_HWSURFACE,largeur_case,hauteur_case, 32,0,0,0,0);
            thon = SDL_CreateRGBSurface(SDL_HWSURFACE,largeur_case,hauteur_case, 32,0,0,0,0);
            pollution = SDL_CreateRGBSurface(SDL_HWSURFACE,largeur_case,hauteur_case, 32,0,0,0,0);
            piranah = SDL_CreateRGBSurface(SDL_HWSURFACE,largeur_case,hauteur_case, 32,0,0,0,0);
            requin = SDL_CreateRGBSurface(SDL_HWSURFACE,largeur_case,hauteur_case, 32,0,0,0,0);
            orque = SDL_CreateRGBSurface(SDL_HWSURFACE,largeur_case,hauteur_case, 32,0,0,0,0);
            baleine = SDL_CreateRGBSurface(SDL_HWSURFACE,largeur_case,hauteur_case, 32,0,0,0,0);
    	pecheur = SDL_CreateRGBSurface(SDL_HWSURFACE,largeur_case,hauteur_case, 32,0,0,0,0);
            pont = SDL_CreateRGBSurface(SDL_HWSURFACE,largeur_case,hauteur_case, 32,0,0,0,0);
     
     
            //mise est place des couleurs pour chaque especes
            SDL_FillRect(terre, NULL, SDL_MapRGB(terre->format,160,82,45));
            SDL_FillRect(eau, NULL, SDL_MapRGB(eau->format,65,105,255));
            SDL_FillRect(plancton, NULL, SDL_MapRGB(plancton->format,50,205,50));
            SDL_FillRect(corail, NULL, SDL_MapRGB(corail->format,255,127,80));
            SDL_FillRect(bar, NULL, SDL_MapRGB(bar->format,154,205,50));
            SDL_FillRect(thon, NULL, SDL_MapRGB(thon->format,153,50,204));
            SDL_FillRect(pollution, NULL, SDL_MapRGB(pollution->format,128,128,128));
            SDL_FillRect(piranah, NULL, SDL_MapRGB(piranah->format,255,0,0));
            SDL_FillRect(requin, NULL, SDL_MapRGB(requin->format,102,205,170));
            SDL_FillRect(orque, NULL, SDL_MapRGB(orque->format,47,79,79));
            SDL_FillRect(baleine, NULL, SDL_MapRGB(baleine->format,0,128,128));
    	SDL_FillRect(pecheur, NULL, SDL_MapRGB(pont->format,0,0,0));
            SDL_FillRect(pont, NULL, SDL_MapRGB(pont->format,255,255,0));
     
    	tabSurface[0]=terre;
    	tabSurface[1]=eau;
    	tabSurface[2]=plancton;
    	tabSurface[3]=corail;
    	tabSurface[4]=bar;
    	tabSurface[5]=thon;
    	tabSurface[6]=pollution;
    	tabSurface[7]=piranah;
    	tabSurface[8]=requin;
    	tabSurface[9]=orque;
    	tabSurface[10]=baleine;
    	tabSurface[11]=pecheur;
    	tabSurface[12]=pont;
     
    }
    Le problème concernant un affichage corrompu pour une autre taille que 40 n'est toujours pas réglé (et je ne comprend pas pourquoi), mais je ne sais pas si le problème vient de là...


    J'aurais aussi aimé quelque renseignement concernant le texte en SDL : j'affiche une valeur qui s'incrémente et se décrémente au fur et à mesure du jeu... Elle marche mais, au bout d'un certain temps, cet affichage fait planter le programme (SEGFAULT).
    Y aurait il quelque chose que je n'aurais pas compris ou que j'aurais oublié dans cet affichage? :

    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
    void affichage_sac(info_pecheur *pecheur, SDL_Surface *ecran, int num_j){
     
       char contenu_sac[15];
     
       SDL_Surface *texte_sac;
       SDL_Rect pos_texte;
       SDL_Color couleurTexte={0,0,0};
       //position du texte sur l'ecran
       pos_texte.x=(LARGEUR*4)/5;
       pos_texte.y=(HAUTEUR*6)/7;
     
       //choix police
       TTF_Font *police=TTF_OpenFont("arial.ttf",12);
     
       //sac joueur 1
       if(num_j==0)
    	sprintf(contenu_sac,"sac j1 : %d", pecheur->sac);
     
       //sac joueur 2
       if(num_j==1){
     
    	sprintf(contenu_sac,"sac j2 : %d", pecheur->sac);
    	pos_texte.y+=14;
    	}
     
     
          texte_sac=TTF_RenderText_Solid(police,contenu_sac,couleurTexte);
          SDL_BlitSurface(texte_sac, NULL, ecran, &pos_texte);
       }
    Merci

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    au bout d'un certain temps, cet affichage fait planter le programme (SEGFAULT).
    En utilisant un débogueur, vous pouvez comprendre rapidement la raison de ce crash.
    Sinon, pour vous aider à comprendre le crash, il faut déterminer quelle valeur provoque le crash


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TTF_Font *police=TTF_OpenFont("arial.ttf",12);
    Ne chargez pas la police à chaque fois que vous voulez afficher quelque chose.

    De plus, vous devriez vérifier vos pointeurs, peut être vous passez un pointeur NULL
    De plus, vous devriez vérifier les valeurs de retours de la SDL. Peut être une opération ne réussit pas (et puis, c'est une bonne pratique en programmation, pas que avec la SDL).

    Comme vous avez un tampon limité à 15 caractères, j'utiliserai un snprintf à la place du sprintf.

    Pour le bogue, lorsque la taille est différente à 40, je vous conseille d'utiliser un débogueur, ou de nous faire une capture d'écran si c'est un bogue graphique, car là, je n'arrive pas en lisant juste le code.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 22
    Points : 19
    Points
    19
    Par défaut
    En effet c'était bien le chargement de la police qui causait la SEGFAULT.
    Pour le bug d'affichage, gdb ne me dit rien (pas plus qu'un quelconque warning)
    J'ai screené ce problème (la map est censé être carré, le contour (et seulement le contour) est censé etre en terre, les pecheurs popant toujours sur la terre):

    Taille 40x40 (affichage normal) : Nom : taille40.png
Affichages : 160
Taille : 62,1 Ko

    Taille 41x41: Nom : taille41.png
Affichages : 152
Taille : 62,2 Ko

    Taille 20x20 : Nom : taille20.png
Affichages : 157
Taille : 65,3 Ko

    Taille 50x50 : Nom : taille50.png
Affichages : 157
Taille : 64,6 Ko

    Taille 60x60 : Nom : taille60.png
Affichages : 169
Taille : 66,7 Ko

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Amusant les bogues d'affichage.
    J'émets une autre hypothèse : ne serait-ce pas le code qui remplit votre grille, qui ne gère pas bien les changements de résolutions ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 22
    Points : 19
    Points
    19
    Par défaut
    Normalement les cases sont paramétrées pour avoir une taille proportionnelle au nombre de cases par côté... Le code qui initialise les cases ne fait jamais qu'assigner une valeur aux cases assez classiquementd... Je vois donc pas vraiment d'où peut venir le problème.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 22
    Points : 19
    Points
    19
    Par défaut
    En fait c'était une erreur bête, j'ai du oublié de régénérer tous les .o avec un make clean, du coup quand je changeais la valeur du define, ça ne changeait pas certains .c qui l'utilisaient, la taille restait donc à 40 dans ces modules...

  9. #9
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Ah, bien vu
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

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

Discussions similaires

  1. [Mail] Bug d'affichage d'un tableau dans un email
    Par alixe dans le forum Langage
    Réponses: 3
    Dernier message: 22/02/2007, 11h54
  2. [AWT] Bug d'affichage
    Par deathwing dans le forum Composants
    Réponses: 3
    Dernier message: 17/05/2004, 17h39
  3. [TP]TP7/XP : bug d'affichage
    Par art dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 17/04/2004, 22h20
  4. [MFC] Affichage d'un tableau
    Par SethPech dans le forum MFC
    Réponses: 7
    Dernier message: 23/02/2004, 15h48
  5. xml-xsl-fo : probleme d'affichage d'un tableau
    Par clindoeil dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 12/12/2003, 12h46

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