Accueil > > > DES HISTOGRAMES , CAMEMBERT 3D ET ÉCLATÉS CRÉÉ AU VOL EN PHP
DES HISTOGRAMES , CAMEMBERT 3D ET ÉCLATÉS CRÉÉ AU VOL EN PHP
Information sur la source
Description
// peut être appelée dans votre code pour créer au vol un graphique (histogramme 2 ou 3D , camembert 2 ou 3d) //exemple => <img src="cree_graphique.php?titre=Titre du graphique&n=1&noms=categorie1;categorie2;categorie 3&valeurs=1234,500,734&pertinences=0,3,5&saisies=s aisie1;saisie2&la=700&ha=120&type=4&auvol=1" />'; // ou comme une procédure incluse pour creer un fichier image graphq.gif dans le dossier images/ du repertoire courant de cree_graphique.php // à inclure dans votre code php par include_once('cree_graphique.php');//include_path inutile car dans dossier courant //exemple => if (cree_graphique($titre,$q,etc...,false)) print <img src="graph$q.gif">;
Source
- <?php
- // peut être appelée dans votre code pour créer au vol un graphique (histogramme 2 ou 3D , camembert 2 ou 3d)
- //exemple => <img src="cree_graphique.php?titre=Titre du graphique&n=1&noms=categorie1;categorie2;categorie3&valeurs=1234,500,734&pertinences=0,3,5&saisies=saisie1;saisie2&la=700&ha=120&type=4&auvol=1" />';
- // ou comme une procédure incluse pour creer un fichier image graphq.gif dans le dossier images/ du repertoire courant de cree_graphique.php
- // à inclure dans votre code php par include_once('cree_graphique.php');//include_path inutile car dans dossier courant
- //exemple => if (cree_graphique($titre,$q,etc...,false)) print <img src="graph$q.gif">;
-
- //.................................... début de l'exécution
-
- if (isset($_GET['auvol'])) //renvoyer l'image au vol
- {
- header("Content-type: image/gif");
- $im=cree_graphique($_GET['titre'],$_GET['n'],$_GET['noms'],$_GET['valeurs'],$_GET['pertinences'],$_GET['saisies'],strval($_GET['la']),strval($_GET['ha']),strval($_GET['type']),true);
- imagegif($im); //fabrication et renvoi
- imagedestroy($im);//libération mémoire
- }// sinon la procedure incluse ci-dessous est appelée directement par le code
-
- //......................................fin du l'exécution
-
- //******************** FONCTION de fabrication du graphique
-
- function cree_graphique($titre,$q,$noms,$val,$pertinence,$saisies,$la,$ha,$type,$auvol) //le grahique ne tient pas compte des pondérations, donne simplement la proportion
- {
- //prevenir erreur si $type=0 (aucun graphique)
- if ($type==0) $type=4; //sinon 1 - barres 2D , 2 - barres 3D , 3 - camembert 2D, 4 - camembert 3D
- //affichage ou non du degré de pertinece des réponses
- $aff_pertinence=($pertinence!='');
- //Il y a des saisies utilisateurs autres que les catagories noms, à représenter dans le graphique
- $saisie=($saisies!='');
- // créer l'image sur fond gris
- $im = imagecreate($la, $ha);
- imagefilledrectangle($im, 0,0, $la, $ha,imagecolorallocate($im,153,153,153));
- //encadrer en noir
- imagerectangle($im, 0,0, $la-1, $ha-1,imagecolorallocate($im,0,0,0));
- //titre du graphique en blanc
- imagestring($im, 3, 10,2,$titre,imagecolorallocate($im,255,255,255));
-
- //choix de la couleur de base à nuancer
- switch ($q%6)
- {
- case 0 : $c="vert";break ;
- case 1 : $c="cyan";break ;
- case 2 : $c="magenta";break;
- case 3 : $c="rouge";break ;
- case 4 : $c="bleu";break ;
- case 5 : $c="jaune";break ;
- }
- //mettre en tableau les valeurs envoyées, en allongeant de 1 pour prévoir les saisies
- $t=split(';',$noms);
- $max=count($t); // max+1 valeurs , pour prévoir les saisies
- $v=array($max); //valeurs en pourcentage
- $nom=split(';',$noms);array_push($nom,'');
- $v0=split(';',$val);array_push($v0,0);
- $p0=split(';',$pertinence);array_push($p0,0);
- $co=array($max);
- if ($saisie)
- {
- $nom[$max]="Autres saisies ... ";
- $mul=10;
- if ($aff_pertinence) $p0[$max]=10;
- $z=split(';',$saisies);
- $v0[$max]=count($z)*$mul; //nb de saisies multipliées par 10 pour les voir...
- }
- else $max=$max-1;
- //calcul des pourcentages
- $s=0;
- for ($i=0;$i<=$max;$i++) $s+=$v0[$i];
- if ($s==0) $s=100; //prevenir somme nulle
- for ($i=0;$i<=$max;$i++) $v[$i]=100*$v0[$i]/$s;
- //aspect du graphique
- $e=40; //épaisseur pour la 3D
- $cx=2*$la/3 ;$cy=$ha/2+$e/2+4; // centre du camembert
- if ($type==4) {$lac=$la/2.5;$hac=$ha/2.5;$angle0=0;} else {$lac=$la/2;$hac=$ha/2;$angle0=0;} //grand axe/petit axe - angle0 fait tourner le camembert dans son plan...
- // decalage vertical de la legende
- $dh=$ha/(2+$max);
-
- if ($type<3) // *********************************** barres horizontales 2 ou 3D
- {
- //rechercher maxi du pourcentage
- $maxi=0;for ($i=0;$i<=$max;$i++) {if ($v[$i]>$maxi) {$maxi=$v[$i];$j=$i;$ech=100/$v[$i];}}
- //le prendre (j) comme référence à 100% et recalculer v(i)
- for ($i=0;$i<=$max;$i++) {if ($i==$j) $v[$i]=2*$la/3-40; else $v[$i]=$ech*$v[$i]*(2*$la/3-40)/100;}
-
- //legende + barres 2D
-
- for ($i=0;$i<=$max;$i++)
- {
- if ($aff_pertinence) $s='('.$p0[$i].') '; else $s='';
- imagestring($im, 2, 40,$dh+ $i*$dh, $s.formate($nom[$i],35).$v0[$i],couleur($im,'noir',0,10));//legende
- if ($type==1) $co[$i]=couleur($im,$c,$i-1,$max); else $co[$i]=couleur($im,$c,$i,$max); //plus clair en 3D
- imagefilledrectangle($im, 10,$dh+ $i*$dh, 30,$dh +15 + $i*$dh,$co[$i]);
- if ($type==1) $d=0; else $d=6; //ajustage pour 3D [$i]=couleur($im,$c,$i-1,$max); else $co[$i]=couleur($im,$c,$i,$max); //plus clair en 3D
- imagefilledrectangle($im, $la/3 +30 - $d, $dh + $d + $i*$dh, $la/3 + 30 - $d + $v[$i],$dh + 15 + $i*$dh,$co[$i]); // face avant - barres 2D
- }
-
- if ($type==2) // si barres 3D
- for ($f=0;$f<7;$f++) // mise en relief par glissments et nuances
- {
- for ($i=0;$i<=$max;$i++)
- {
- $co[$i]=couleur($im,$c,$i-0.5,$max); //extrémité droite
- imagefilledrectangle($im,$la/3 + 30 -$f + $v[$i],$dh + $i*$dh+$f, $la/3 + 30 -$f+1 + $v[$i],$dh + 8+$f + $i*$dh,$co[$i]);
- $co[$i]=couleur($im,$c,$i-0.8,$max);//face supérieure
- imagefilledrectangle($im, $la/3 -$f + 30,$dh + $f+ $i*$dh, $la/3 + 30 -$f + $v[$i],$f+1 + $dh + $i*$dh,$co[$i]);
- }
- }
- }
-
- else // **************************************** représentations circulaires : camembert 2D ou 3D
- {
- //bloc couleur + légende
- for ($i=0;$i<=$max;$i++)
- {
- $co[$i]=couleur($im,$c,$i-1,$max);
- imagefilledrectangle($im, 10,$dh+ $i*$dh, 30,$dh +15 + $i*$dh,$co[$i]);
- $co[$i]=couleur($im,$c,$i-0.5,$max);//couleurs un peu plus sombre pour les tranches...0.5 pour ne pas les confondre avec le dessus
- if ($aff_pertinence) $s='('.$p0[$i].') '; else $s='';
- imagestring($im, 2, 40, $dh + $i*$dh, $s.formate($nom[$i],35).$v0[$i].' ('.number_format($v[$i],1,'.',' ').'%)',couleur($im,'noir',0,10));// 26 premiers caractères
- }
- //camembert
- $deb=$angle0;
- //epaisseur en faisant glisser vers le haut les ellipses sectorisées vides
- for ($f=0;$f<$e;$f++)
- {
- for ($i=0;$i<=$max;$i++)
- {
- $fin=$deb+$v[$i]*3.6;
- $x=$cx;$y=$cy;
- if ($type==4) {$x=$cx+$lac/10*cos(($fin+$deb)/2*pi()/180);$y=$cy+$hac/10*sin(($fin+$deb)/2*pi()/180);}
- if ($type==4) imagefilledarc($im ,$x , $y -$f, $lac ,$hac , $deb, $fin ,$co[$i],IMG_ARC_PIE); else imagefilledarc($im ,$x , $y -$f, $lac ,$hac , $deb, $fin ,$co[$i],IMG_ARC_NOFILL ); // si type 2D inutile de remplir
- $deb=$fin;
- }
- }
- $deb=$angle0;
- // finir par le dessus plus clair, avec des étisuettes en blanc
- for ($i=0;$i<=$max;$i++)
- {
- $co[$i]=couleur($im,$c,$i-1,$max);
- $fin=$deb+$v[$i]*3.6;
- $x=$cx;$y=$cy;
- if ($type==4) {$x=$cx+$lac/10*cos(($fin+$deb)/2*pi()/180);$y=$cy+$hac/10*sin(($fin+$deb)/2*pi()/180);}
- imagefilledarc($im ,$x , $y -$e, $lac ,$hac , $deb, $fin ,$co[$i],IMG_ARC_PIE);//avec remplissage
- //etiquettes % avec couleurs légende
- $co[$i]=couleur($im,'blanc',0,10);
- $x=$cx+$lac/2*cos(($fin+$deb)/2*pi()/180);
- $y=$cy-10+$hac/2*sin(($fin+$deb)/2*pi()/180);
- imagestring($im, 3, $x,$y-$e, number_format($v[$i],1,'.',' ').'%',$co[$i]);
- $deb=$fin;
- }
- }
-
-
- if ($auvol) return $im; // retourner le handle de l'image
- else //sinon créer le fichier image dans le dossier images/
- {
- imagegif($im,'images/graph'.$q.'.gif');
- imagedestroy($im);//libération mémoire
- return true;
- }
- }
-
- //couleurs et dégradés $d niveau du dégradé - $e niveau de degradation maxi
- function couleur($im,$co,$d,$nb)
- {
- $e=255/($nb+1);
- $comp=255-$e*($d+1);
- if ($comp<0) $comp=0;
- if ($comp>255) $comp=255;
- $co=strtoupper($co);
- if ($co=="NOIR") return imagecolorallocate($im,0,0,0);
- else if ($co=="BLANC") return imagecolorallocate($im,$comp,$comp,$comp);
- else if ($co=="JAUNE")return imagecolorallocate($im,$comp,$comp,0);
- else if ($co=="CYAN") return imagecolorallocate($im,0,$comp,$comp);
- else if ($co=="MAGENTA") return imagecolorallocate($im,$comp,0,$comp);
- else if ($co=="ROUGE") return imagecolorallocate($im,$comp,0,0);
- else if ($co=="VERT") return imagecolorallocate($im,0,$comp,0);
- else if ($co=="BLEU") return imagecolorallocate($im,0,0,$comp);
- else return imagecolorallocate($im,0,0,0);
- }
-
- function formate($s,$nb)
- {
- $s.='..........................................';
- return substr($s,0,$nb).'... : ';
- }
-
-
-
- ?>
<?php
// peut être appelée dans votre code pour créer au vol un graphique (histogramme 2 ou 3D , camembert 2 ou 3d)
//exemple => <img src="cree_graphique.php?titre=Titre du graphique&n=1&noms=categorie1;categorie2;categorie3&valeurs=1234,500,734&pertinences=0,3,5&saisies=saisie1;saisie2&la=700&ha=120&type=4&auvol=1" />';
// ou comme une procédure incluse pour creer un fichier image graphq.gif dans le dossier images/ du repertoire courant de cree_graphique.php
// à inclure dans votre code php par include_once('cree_graphique.php');//include_path inutile car dans dossier courant
//exemple => if (cree_graphique($titre,$q,etc...,false)) print <img src="graph$q.gif">;
//.................................... début de l'exécution
if (isset($_GET['auvol'])) //renvoyer l'image au vol
{
header("Content-type: image/gif");
$im=cree_graphique($_GET['titre'],$_GET['n'],$_GET['noms'],$_GET['valeurs'],$_GET['pertinences'],$_GET['saisies'],strval($_GET['la']),strval($_GET['ha']),strval($_GET['type']),true);
imagegif($im); //fabrication et renvoi
imagedestroy($im);//libération mémoire
}// sinon la procedure incluse ci-dessous est appelée directement par le code
//......................................fin du l'exécution
//******************** FONCTION de fabrication du graphique
function cree_graphique($titre,$q,$noms,$val,$pertinence,$saisies,$la,$ha,$type,$auvol) //le grahique ne tient pas compte des pondérations, donne simplement la proportion
{
//prevenir erreur si $type=0 (aucun graphique)
if ($type==0) $type=4; //sinon 1 - barres 2D , 2 - barres 3D , 3 - camembert 2D, 4 - camembert 3D
//affichage ou non du degré de pertinece des réponses
$aff_pertinence=($pertinence!='');
//Il y a des saisies utilisateurs autres que les catagories noms, à représenter dans le graphique
$saisie=($saisies!='');
// créer l'image sur fond gris
$im = imagecreate($la, $ha);
imagefilledrectangle($im, 0,0, $la, $ha,imagecolorallocate($im,153,153,153));
//encadrer en noir
imagerectangle($im, 0,0, $la-1, $ha-1,imagecolorallocate($im,0,0,0));
//titre du graphique en blanc
imagestring($im, 3, 10,2,$titre,imagecolorallocate($im,255,255,255));
//choix de la couleur de base à nuancer
switch ($q%6)
{
case 0 : $c="vert";break ;
case 1 : $c="cyan";break ;
case 2 : $c="magenta";break;
case 3 : $c="rouge";break ;
case 4 : $c="bleu";break ;
case 5 : $c="jaune";break ;
}
//mettre en tableau les valeurs envoyées, en allongeant de 1 pour prévoir les saisies
$t=split(';',$noms);
$max=count($t); // max+1 valeurs , pour prévoir les saisies
$v=array($max); //valeurs en pourcentage
$nom=split(';',$noms);array_push($nom,'');
$v0=split(';',$val);array_push($v0,0);
$p0=split(';',$pertinence);array_push($p0,0);
$co=array($max);
if ($saisie)
{
$nom[$max]="Autres saisies ... ";
$mul=10;
if ($aff_pertinence) $p0[$max]=10;
$z=split(';',$saisies);
$v0[$max]=count($z)*$mul; //nb de saisies multipliées par 10 pour les voir...
}
else $max=$max-1;
//calcul des pourcentages
$s=0;
for ($i=0;$i<=$max;$i++) $s+=$v0[$i];
if ($s==0) $s=100; //prevenir somme nulle
for ($i=0;$i<=$max;$i++) $v[$i]=100*$v0[$i]/$s;
//aspect du graphique
$e=40; //épaisseur pour la 3D
$cx=2*$la/3 ;$cy=$ha/2+$e/2+4; // centre du camembert
if ($type==4) {$lac=$la/2.5;$hac=$ha/2.5;$angle0=0;} else {$lac=$la/2;$hac=$ha/2;$angle0=0;} //grand axe/petit axe - angle0 fait tourner le camembert dans son plan...
// decalage vertical de la legende
$dh=$ha/(2+$max);
if ($type<3) // *********************************** barres horizontales 2 ou 3D
{
//rechercher maxi du pourcentage
$maxi=0;for ($i=0;$i<=$max;$i++) {if ($v[$i]>$maxi) {$maxi=$v[$i];$j=$i;$ech=100/$v[$i];}}
//le prendre (j) comme référence à 100% et recalculer v(i)
for ($i=0;$i<=$max;$i++) {if ($i==$j) $v[$i]=2*$la/3-40; else $v[$i]=$ech*$v[$i]*(2*$la/3-40)/100;}
//legende + barres 2D
for ($i=0;$i<=$max;$i++)
{
if ($aff_pertinence) $s='('.$p0[$i].') '; else $s='';
imagestring($im, 2, 40,$dh+ $i*$dh, $s.formate($nom[$i],35).$v0[$i],couleur($im,'noir',0,10));//legende
if ($type==1) $co[$i]=couleur($im,$c,$i-1,$max); else $co[$i]=couleur($im,$c,$i,$max); //plus clair en 3D
imagefilledrectangle($im, 10,$dh+ $i*$dh, 30,$dh +15 + $i*$dh,$co[$i]);
if ($type==1) $d=0; else $d=6; //ajustage pour 3D [$i]=couleur($im,$c,$i-1,$max); else $co[$i]=couleur($im,$c,$i,$max); //plus clair en 3D
imagefilledrectangle($im, $la/3 +30 - $d, $dh + $d + $i*$dh, $la/3 + 30 - $d + $v[$i],$dh + 15 + $i*$dh,$co[$i]); // face avant - barres 2D
}
if ($type==2) // si barres 3D
for ($f=0;$f<7;$f++) // mise en relief par glissments et nuances
{
for ($i=0;$i<=$max;$i++)
{
$co[$i]=couleur($im,$c,$i-0.5,$max); //extrémité droite
imagefilledrectangle($im,$la/3 + 30 -$f + $v[$i],$dh + $i*$dh+$f, $la/3 + 30 -$f+1 + $v[$i],$dh + 8+$f + $i*$dh,$co[$i]);
$co[$i]=couleur($im,$c,$i-0.8,$max);//face supérieure
imagefilledrectangle($im, $la/3 -$f + 30,$dh + $f+ $i*$dh, $la/3 + 30 -$f + $v[$i],$f+1 + $dh + $i*$dh,$co[$i]);
}
}
}
else // **************************************** représentations circulaires : camembert 2D ou 3D
{
//bloc couleur + légende
for ($i=0;$i<=$max;$i++)
{
$co[$i]=couleur($im,$c,$i-1,$max);
imagefilledrectangle($im, 10,$dh+ $i*$dh, 30,$dh +15 + $i*$dh,$co[$i]);
$co[$i]=couleur($im,$c,$i-0.5,$max);//couleurs un peu plus sombre pour les tranches...0.5 pour ne pas les confondre avec le dessus
if ($aff_pertinence) $s='('.$p0[$i].') '; else $s='';
imagestring($im, 2, 40, $dh + $i*$dh, $s.formate($nom[$i],35).$v0[$i].' ('.number_format($v[$i],1,'.',' ').'%)',couleur($im,'noir',0,10));// 26 premiers caractères
}
//camembert
$deb=$angle0;
//epaisseur en faisant glisser vers le haut les ellipses sectorisées vides
for ($f=0;$f<$e;$f++)
{
for ($i=0;$i<=$max;$i++)
{
$fin=$deb+$v[$i]*3.6;
$x=$cx;$y=$cy;
if ($type==4) {$x=$cx+$lac/10*cos(($fin+$deb)/2*pi()/180);$y=$cy+$hac/10*sin(($fin+$deb)/2*pi()/180);}
if ($type==4) imagefilledarc($im ,$x , $y -$f, $lac ,$hac , $deb, $fin ,$co[$i],IMG_ARC_PIE); else imagefilledarc($im ,$x , $y -$f, $lac ,$hac , $deb, $fin ,$co[$i],IMG_ARC_NOFILL ); // si type 2D inutile de remplir
$deb=$fin;
}
}
$deb=$angle0;
// finir par le dessus plus clair, avec des étisuettes en blanc
for ($i=0;$i<=$max;$i++)
{
$co[$i]=couleur($im,$c,$i-1,$max);
$fin=$deb+$v[$i]*3.6;
$x=$cx;$y=$cy;
if ($type==4) {$x=$cx+$lac/10*cos(($fin+$deb)/2*pi()/180);$y=$cy+$hac/10*sin(($fin+$deb)/2*pi()/180);}
imagefilledarc($im ,$x , $y -$e, $lac ,$hac , $deb, $fin ,$co[$i],IMG_ARC_PIE);//avec remplissage
//etiquettes % avec couleurs légende
$co[$i]=couleur($im,'blanc',0,10);
$x=$cx+$lac/2*cos(($fin+$deb)/2*pi()/180);
$y=$cy-10+$hac/2*sin(($fin+$deb)/2*pi()/180);
imagestring($im, 3, $x,$y-$e, number_format($v[$i],1,'.',' ').'%',$co[$i]);
$deb=$fin;
}
}
if ($auvol) return $im; // retourner le handle de l'image
else //sinon créer le fichier image dans le dossier images/
{
imagegif($im,'images/graph'.$q.'.gif');
imagedestroy($im);//libération mémoire
return true;
}
}
//couleurs et dégradés $d niveau du dégradé - $e niveau de degradation maxi
function couleur($im,$co,$d,$nb)
{
$e=255/($nb+1);
$comp=255-$e*($d+1);
if ($comp<0) $comp=0;
if ($comp>255) $comp=255;
$co=strtoupper($co);
if ($co=="NOIR") return imagecolorallocate($im,0,0,0);
else if ($co=="BLANC") return imagecolorallocate($im,$comp,$comp,$comp);
else if ($co=="JAUNE")return imagecolorallocate($im,$comp,$comp,0);
else if ($co=="CYAN") return imagecolorallocate($im,0,$comp,$comp);
else if ($co=="MAGENTA") return imagecolorallocate($im,$comp,0,$comp);
else if ($co=="ROUGE") return imagecolorallocate($im,$comp,0,0);
else if ($co=="VERT") return imagecolorallocate($im,0,$comp,0);
else if ($co=="BLEU") return imagecolorallocate($im,0,0,$comp);
else return imagecolorallocate($im,0,0,0);
}
function formate($s,$nb)
{
$s.='..........................................';
return substr($s,0,$nb).'... : ';
}
?>
Conclusion
Trés pratique pour dépouiller instantanément un sondage, questionnaire ... cf copie d'écran
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
faire un graphique camembert 3D, a partir d'une base de données [ par otacon67 ]
je suis un newbies en PHP, et je voudrais savoir comment creer un camembert en 3D, a partir d'une base de données merci pour votre soutien et vo
Rafraichir une page [ par niko14 ]
Hello everybody!!Voila le bin's!!En fait voila, j'ai une page ou on choisit un type de budget et on valide!Qd on a validé on arrive sur une page
tableau de couleurs comme dans word [ par niko14 ]
slt tout le monde!VOila mon probleme!J'ai un camembert donc je fais choisir les couleurs pour les differentes repartitions et en fait j'avais fait une
Librairie traceur fonction 3D [ par Jarod1980 ]
Bonjour,Je souhaiterais si il existe une librairie en php permettant de tracer des fonctions mathématiques en 3D. J'ai fais une recherche sur net mais
Histogramme empilé [ par moui27 ]
Bonjour à tous, J'ai des histogrammes empilés à afficher dans un PDF (par exemple, donner le nombre de demandes client par type de demande et par mois
afficher des données d'une BD dans un histogramme ! [ par bezzaz ]
Bonjour, au niveau du code de cette page http://www.phpcs.com/codes/HISTOGRAMME-HORIZONTAL_27803.aspx si je veux affecté à $values des données à pa
histogramme en php [ par minaangel ]
salut mes frères et mes soeurs, j'ai voulu faire l'affichage des resultats en histogramme par exemple: le nombre de publications pour chaque année vo
Problème avec un lien dans un envoi mail [ par chatis ]
Bonjour,Voilà 3 jours que je me casse la tête avec ça !!! je dois envoyer un lien de payement saferpay par e-mail, mais dans le lien, dans la partie s
histogramme php mysql [ par agnes05 ]
je veux construire un histogramme a partir des donnees stockees dans ma base de donnee. je dois les extraire et en faire des calculs pr ensuite creer
Histogramme avec JpGraph et Bse de donnée [ par thomasazerty ]
Salut a ous voila j'aimerai réaliser un histogramme en me servant de JpGraph et ma base de donnée. Que je m'explique voila j'arrive a afficher des cou
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
SYSTEME D'AMISYSTEME D'AMI par moza2409
Cliquez pour lire la suite par moza2409
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|