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

Langage PHP Discussion :

Gestion des couleurs, appel de fonction qui ne donne pas la bonne couleur


Sujet :

Langage PHP

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut Gestion des couleurs, appel de fonction qui ne donne pas la bonne couleur
    Bonjour tout le monde,

    J'aimerais avoir une ligne de couleur bleue claire une ligne sur deux.

    J'ai essayé avec 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    function Row($data)
    	{
    		//Calcule la hauteur de la ligne
    		$nb=0;
    		for($i=0;$i<count($data);$i++)
    			$nb=max($nb,$this->NbLines($this->widths[$i],$data[$i]));
    		$h=5*$nb;
    		//Effectue un saut de page si nécessaire
    		$this->CheckPageBreak($h);
    		//Dessine les cellules
    		$max = count($data);
    		for($i=0;$i<$max;$i++)
    		{
    	        if($i % 2 == 0)
    			{ 
    				$this->SetFillColor(224,235,255);
    			}
                else
    			{ 
    				$this->SetFillColor(0,0,0);
    			}
    			$w=$this->widths[$i];
    			$a=isset($this->aligns[$i]) ? $this->aligns[$i] : 'C'; //SI Terniaire
    			//Sauve la position courante
    			$x=$this->GetX();
    			$y=$this->GetY();
    			//Dessine le cadre
    			$this->Rect($x,$y,$w,$h);
    			//Imprime le texte
    			$this->MultiCell($w,5,$data[$i],0,$a);
    			//Repositionne a droite
    			$this->SetXY($x+$w,$y);
    		}
    		//Va a la ligne
    		$this->Ln($h);
    	}
    Étrangement, ça ne fonctionne pas.

    La gestion de la couleur est donc ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    for($i=0;$i<$max;$i++)
    		{
    	        if($i % 2 == 0)
    			{ 
    				$this->SetFillColor(224,235,255);
    			}
                else
    			{ 
    				$this->SetFillColor(0,0,0);
    			}
    Mes lignes sont toujours blanches.

    Voici la fonction qui permet de colorier les lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function SetFillColor($r,$g=-1,$b=-1)
    {
    	//Set color for all filling operations
    	if(($r==0 && $g==0 && $b==0) || $g==-1)
    		$this->FillColor=sprintf('%.3f g',$r/255);
    	else
    		$this->FillColor=sprintf('%.3f %.3f %.3f rg',$r/255,$g/255,$b/255);
    	$this->ColorFlag=($this->FillColor!=$this->TextColor);
    	if($this->page>0)
    		$this->_out($this->FillColor);
    }
    Sauriez-vous me dire comment je pourrais résoudre ce problème svp ?

    Merci d'avance.

    beegees

  2. #2
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 185
    Points : 225
    Points
    225
    Par défaut
    Bonjour,

    Il aurais fallu dire avec quoi tu as le problème, je suppose à la vue du code que ça à un rapport avec PDF, voir même FPDF, non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->Rect($x,$y,$w,$h, "F");
    Si c'est bien FPDF, alors il faut lui ajouter une option pour qu'il fasse des rectangles remplis et non pas juste des contours. Et je suppose que la couleur de tes contours étant le blanc, tu ne vois rien ...

    Bonne journée.

  3. #3
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par LoveAngel Voir le message
    Bonjour,

    Il aurais fallu dire avec quoi tu as le problème, je suppose à la vue du code que ça à un rapport avec PDF, voir même FPDF, non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->Rect($x,$y,$w,$h, "F");
    Si c'est bien FPDF, alors il faut lui ajouter une option pour qu'il fasse des rectangles remplis et non pas juste des contours. Et je suppose que la couleur de tes contours étant le blanc, tu ne vois rien ...

    Bonne journée.
    Bonjour,

    Merci pour ta réponse.

    En effet, c'est FPDF, bien vu

    Par contre, j'ai modifié le code que tu m'as indiqué, ça ne change rien.

    EDIT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    			$this->Rect($x,$y,$w,$h,'DF');
    change la couleur mais entre colonne et pas entre ligne.

    Merci encore.

    beegees

  4. #4
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 185
    Points : 225
    Points
    225
    Par défaut
    Zut.

    Tu as essayé d'afficher les valeurs de X et Y au fur et à mesure des dessins des rectangles ? Il les trace peut être dans une zone non visible ( pour cause qu'elle est en dehors de la page, on sais jamais ). Par exemple, si ton X est en fin de ligne avant l'appel, ça peux poser problème.
    Tu as essayé, sinon, de tracer un rectangle plein comme ça, tout seul, avec des coordonnées du genre 0,0 -> 10,10 ? Je sais plus, je crois que FPDF marche bien en coordonnées positives à partir du point haut gauche, mais je me souviens d'une autre classe de gestion PDF qui marchais en coordonnées négatives à partir d'en bas à droite.

    Edit :
    change la couleur mais entre colonne et pas entre ligne.
    Gnié ?
    Trace le rectangle dans l'autre sens ?

    Bonne journée.

  5. #5
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Re,

    Trace le rectangle dans l'autre sens ?
    Comment je peux faire cela ?

    Merci encore pour ton aide et bonne journée à toi aussi.

    beegees

  6. #6
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 185
    Points : 225
    Points
    225
    Par défaut
    Citation Envoyé par beegees Voir le message
    Comment je peux faire cela ?
    Hum, tu trace le rectangle entre les points ($x, $y) et ($w, $h), donc ... j'ai envie de te dire d'inverser $x et $y, et $w et $h ?
    Mes maths sont un peu rouillées

    Bonne journée toi aussi aussi.

  7. #7
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par LoveAngel Voir le message
    Hum, tu trace le rectangle entre les points ($x, $y) et ($w, $h), donc ... j'ai envie de te dire d'inverser $x et $y, et $w et $h ?
    Mes maths sont un peu rouillées

    Bonne journée toi aussi aussi.
    Re,

    Merci pour ta réponse.

    J'ai inversé, mais rien ne change.

    L'alternance se fait sur les colonnes et non sur les lignes.

    Qu'en penses-tu ?

    Encore merci.

    beegees

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/02/2011, 17h03
  2. Code qui ne donne pas la bonne somme
    Par gangsterus dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 15/12/2008, 13h15
  3. appel de fonction qui ne marche pas : syntaxe?
    Par adoptioninternationa dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 01/07/2008, 11h07
  4. Texte qui ne prend pas la bonne couleur
    Par lodan dans le forum Mise en page CSS
    Réponses: 24
    Dernier message: 20/09/2006, 09h05
  5. Gestion des buffers dans une fonction
    Par JiJiJaco dans le forum Langage
    Réponses: 2
    Dernier message: 06/01/2006, 11h20

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