<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1673332321871142560</id><updated>2011-10-31T15:44:16.103-07:00</updated><title type='text'>charles vidal blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vidalcharles.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://vidalcharles.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>zebulon75018</name><uri>http://www.blogger.com/profile/14834421778162526027</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_viV3Fr9CugY/SPkEjGOnQZI/AAAAAAAABGE/ljsDwCykxus/S220/AAA.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1673332321871142560.post-4873631553666307064</id><published>2011-10-18T11:39:00.000-07:00</published><updated>2011-10-31T15:44:16.120-07:00</updated><title type='text'>CV Video.</title><content type='html'>&lt;iframe width="420" height="315" src="http://www.youtube.com/embed/CGgS9z_4IBE" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1673332321871142560-4873631553666307064?l=vidalcharles.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vidalcharles.blogspot.com/feeds/4873631553666307064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1673332321871142560&amp;postID=4873631553666307064' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/4873631553666307064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/4873631553666307064'/><link rel='alternate' type='text/html' href='http://vidalcharles.blogspot.com/2011/10/cv-video.html' title='CV Video.'/><author><name>zebulon75018</name><uri>http://www.blogger.com/profile/14834421778162526027</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_viV3Fr9CugY/SPkEjGOnQZI/AAAAAAAABGE/ljsDwCykxus/S220/AAA.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/CGgS9z_4IBE/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673332321871142560.post-2049161774136197426</id><published>2011-10-02T15:34:00.000-07:00</published><updated>2011-10-04T11:14:35.648-07:00</updated><title type='text'>book wpf tactile Mitsu.</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Un post pour diffuser une version modifier de l'excellent&lt;a href="http://wpfbookcontrol.codeplex.com/"&gt; control Wpf de Mitsu Furuta,&lt;/a&gt; pour le rendre tactile. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;La version fonctionne bien que je ne suis pas sur et certain que ma modification soit pleinement correct.&lt;/div&gt;&lt;div&gt;Si vous avez une remarque n'hesitez pas a me le dire.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;iframe width="425" height="349" src="http://www.youtube.com/embed/F6zJ5VkECSo?hl=fr&amp;amp;fs=1" frameborder="0" allowfullscreen=""&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;J'ai ajouté a Book.cs les evenements de l'API tactile:&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt; public Book() &lt;/div&gt;&lt;div&gt;        {&lt;/div&gt;&lt;div&gt;[...]&lt;/div&gt;&lt;div&gt;            IsManipulationEnabled = true;&lt;/div&gt;&lt;div&gt;            ManipulationCompleted += Image_ManipulationCompleted;&lt;/div&gt;&lt;div&gt;            ManipulationDelta += Image_ManipulationDelta;            &lt;/div&gt;&lt;div&gt;        }&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Dans le fichier BookPage.xaml.cs , j'ai ajouté les methodes: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ContentControl_TouchEnter&lt;/div&gt;&lt;div&gt;ContentControl_TouchDown&lt;/div&gt;&lt;div&gt;ContentControl_TouchMove&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Voici l'adresse de l'archive:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://tcltk.free.fr/stuff/book/wpfbookcontrolTactile.zip"&gt;Download&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1673332321871142560-2049161774136197426?l=vidalcharles.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vidalcharles.blogspot.com/feeds/2049161774136197426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1673332321871142560&amp;postID=2049161774136197426' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/2049161774136197426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/2049161774136197426'/><link rel='alternate' type='text/html' href='http://vidalcharles.blogspot.com/2011/10/book-wpf-tactile-mitsu.html' title='book wpf tactile Mitsu.'/><author><name>zebulon75018</name><uri>http://www.blogger.com/profile/14834421778162526027</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_viV3Fr9CugY/SPkEjGOnQZI/AAAAAAAABGE/ljsDwCykxus/S220/AAA.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/F6zJ5VkECSo/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673332321871142560.post-1404498641066810831</id><published>2011-06-19T12:56:00.000-07:00</published><updated>2011-06-19T12:59:35.593-07:00</updated><title type='text'>Microsoft release enfin le sdk pour la kinect</title><content type='html'>Microsoft release enfin le sdk pour le kinect.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://research.microsoft.com/kinectsdk"&gt;http://research.microsoft.com/kinectsdk&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Suite a l'apparition de la version opensource:&lt;br /&gt;http://www.openni.org/&lt;br /&gt;&lt;br /&gt;Microsoft nous fait l'honneur de releaser la version sdk de la kinect&lt;br /&gt;et j'ai testé ca marche :).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1673332321871142560-1404498641066810831?l=vidalcharles.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vidalcharles.blogspot.com/feeds/1404498641066810831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1673332321871142560&amp;postID=1404498641066810831' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/1404498641066810831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/1404498641066810831'/><link rel='alternate' type='text/html' href='http://vidalcharles.blogspot.com/2011/06/microsoft-release-enfin-le-sdk-pour-la.html' title='Microsoft release enfin le sdk pour la kinect'/><author><name>zebulon75018</name><uri>http://www.blogger.com/profile/14834421778162526027</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_viV3Fr9CugY/SPkEjGOnQZI/AAAAAAAABGE/ljsDwCykxus/S220/AAA.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673332321871142560.post-1924088719790036055</id><published>2009-11-08T12:52:00.000-08:00</published><updated>2009-11-08T12:58:59.395-08:00</updated><title type='text'>__autoload l'include killer de php</title><content type='html'>Php dans sa version 5 a une fonctionnalité tres intérressante &lt;a href="http://php.net/manual/fr/language.oop5.autoload.php"&gt;__autoLoad&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Voici une description de cette fonctionnalité :&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;Vous pouvez définir la fonction    &lt;/span&gt;&lt;b style="font-style: italic; color: rgb(102, 102, 102);"&gt;__autoload()&lt;/b&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt; qui va automatiquement être appelée    si une classe n'est pas encore définie au moment de son utilisation.    Grâce à elle, vous avez une dernière chance pour inclure une définition de    classe, avant que PHP ne déclare une erreur.   &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;L'idée est de faire un seul fichier php qui va gérer le lien entre nom de classe et aussi fichier ou cette classe est déclarée.&lt;br /&gt;Apres dans toute votre application vous n'aurez besoin de d'appeller que ce meme et seul fichier.&lt;br /&gt;Ainsi vous optimiserez le chargement de classe php dynamiquement.&lt;br /&gt;&lt;br /&gt;Vous le code permettant de génerer le fameux fichier ici class/autoload, en imaginant que vos classes sont dans le repertoire class:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 51);font-size:85%;" &gt;&lt;?php&lt;br /&gt;$phpFile = scandir("class");&lt;br /&gt;&lt;br /&gt;$result ="&lt;?php \n\$arrayClassFilename=array();\n";&lt;br /&gt;foreach($phpFile as $filename)&lt;br /&gt;{  &lt;br /&gt;  if ($filename != ".." &amp;amp;&amp;amp; $filename != ".")&lt;br /&gt;  {&lt;br /&gt;     $content = file_get_contents("class/".$filename);&lt;br /&gt;     while(true)&lt;br /&gt;     {&lt;br /&gt;     if(eregi("class ([a-z_A-Z0-9]+)([ \n\t]+){",$content,$regs))&lt;br /&gt;     {      &lt;br /&gt;       $result .= "\$";&lt;br /&gt;       $result .=  "arrayClassFilename[\"".$regs[1]."\"] = \"".$filename."\";\n";&lt;br /&gt;       $content = substr(stristr($content,"class "),5);           &lt;br /&gt;     }&lt;br /&gt;     else&lt;br /&gt;     {     &lt;br /&gt;      if(eregi("class ([a-z_A-Z0-9]+)([ \n\t]*) extend",$content,$regs))&lt;br /&gt;       {      &lt;br /&gt;       $result .=  "\$";&lt;br /&gt;       $result .= "arrayClassFilename[\"".$regs[1]."\"] = \"".$filename."\";\n";&lt;br /&gt;       $content = substr(stristr($content,"class "),5);&lt;br /&gt;       }&lt;br /&gt;       else&lt;br /&gt;       {       &lt;br /&gt;        break;&lt;br /&gt;       }&lt;br /&gt;     }&lt;br /&gt;     }&lt;br /&gt;  }&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;}&lt;br /&gt; $result.="\nfunction __autoload(\$class_name) {&lt;br /&gt;    global \$arrayClassFilename;&lt;br /&gt;    if (isset(\$arrayClassFilename[\$class_name]))&lt;br /&gt;    {&lt;br /&gt;      require_once \"class/\".\$arrayClassFilename[\$class_name];&lt;br /&gt;     }&lt;br /&gt;}&lt;br /&gt;?&gt;";&lt;br /&gt;  file_put_contents("class/autoload.php",$result); &lt;br /&gt;?&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1673332321871142560-1924088719790036055?l=vidalcharles.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vidalcharles.blogspot.com/feeds/1924088719790036055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1673332321871142560&amp;postID=1924088719790036055' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/1924088719790036055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/1924088719790036055'/><link rel='alternate' type='text/html' href='http://vidalcharles.blogspot.com/2009/11/autoload-linclude-killer-de-php.html' title='__autoload l&apos;include killer de php'/><author><name>zebulon75018</name><uri>http://www.blogger.com/profile/14834421778162526027</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_viV3Fr9CugY/SPkEjGOnQZI/AAAAAAAABGE/ljsDwCykxus/S220/AAA.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673332321871142560.post-1675195697030724840</id><published>2009-06-19T15:47:00.000-07:00</published><updated>2009-06-19T15:59:33.857-07:00</updated><title type='text'>Fonction pour convertir IplImage en grayscale sans passer par cvCvtColor</title><content type='html'>Un petit article sur OpenCV.&lt;br /&gt;Apres avoir rechercher comment convertir une IPLImage en grayscale et si possible sans passer par cvCvtColor, j'ai reussi à le faire et je le partage avec vous.&lt;br /&gt;&lt;br /&gt;Fonction pour convertir IplImage en grayscale sans passer par cvCvtColor/&lt;br /&gt;Dans cette fonction, il y a aussi comment accéder au pixel d'une IplImage.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IplImage *GrayscaleConvert(IplImage* cimg)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;     int x,y;     &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;     int nbChannel    = cimg-&gt;nChannels;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;     int iwd            =cimg-&gt;widthStep; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;     IplImage* result=cvCloneImage(cimg);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;     char *idtS        =cimg-&gt;imageData;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;     char *idtD        =result-&gt;imageData;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;     uchar* pixelS_ptr;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;     uchar* pixelD_ptr;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;     for(x=0;x&lt;cimg-&gt;width;x++)&lt;/cimg-&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;     {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  for(y=0;y&lt;cimg-&gt;height;y++) &lt;/cimg-&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  {        &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  pixelD_ptr  = &amp;amp;((uchar*)(idtD + iwd*y))[x*nbChannel];&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  pixelS_ptr  = &amp;amp;((uchar*)(idtS + iwd*y))[x*nbChannel];&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  uchar grey = ((float)pixelS_ptr[0])*0.114 + ((float)pixelS_ptr[1])*0.587 +&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;((float)pixelS_ptr[2])*0.299;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;           pixelD_ptr[0] = grey;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  pixelD_ptr[1] = grey;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  pixelD_ptr[2] = grey;    &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;           }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt; }    &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;   return result;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;}&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1673332321871142560-1675195697030724840?l=vidalcharles.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vidalcharles.blogspot.com/feeds/1675195697030724840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1673332321871142560&amp;postID=1675195697030724840' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/1675195697030724840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/1675195697030724840'/><link rel='alternate' type='text/html' href='http://vidalcharles.blogspot.com/2009/06/fonction-pour-convertir-iplimage-en.html' title='Fonction pour convertir IplImage en grayscale sans passer par cvCvtColor'/><author><name>zebulon75018</name><uri>http://www.blogger.com/profile/14834421778162526027</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_viV3Fr9CugY/SPkEjGOnQZI/AAAAAAAABGE/ljsDwCykxus/S220/AAA.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673332321871142560.post-7995564396544979309</id><published>2009-06-17T14:19:00.001-07:00</published><updated>2009-06-17T14:54:27.753-07:00</updated><title type='text'>Premier Article sur Prado...</title><content type='html'>Voici un petit article sur&lt;a href="http://www.pradosoft.com/"&gt; Prado.&lt;/a&gt;&lt;br /&gt;Prado est un &lt;a href="http://fr.wikipedia.org/wiki/Liste_de_frameworks_PHP"&gt;framework PHP&lt;/a&gt; qui me semble interressant, car il change un peu d'autre&lt;br /&gt;qui sont abscons, parfois frustrant, car interressant mais dur a exploité.&lt;br /&gt;&lt;br /&gt;J'ai tout d'abords essayé avec Symphony,Zend, et finalement CakePhp.&lt;br /&gt;je suis arrivé a faire des choses , puis a un moment je me suis retrouvé bloqué betement&lt;br /&gt;par manque du connaissance du Framework.Et la .... j'ai galeré...&lt;br /&gt;&lt;br /&gt;J'espere que Prado repondra plus a mes espérences, et surtout qu'il y a des formulaires&lt;br /&gt;avec des validations javascripts simple et des concepts de callbacks tres interressant et&lt;br /&gt;qui se rapproche plus a des applications classiques.( genre WinForm C# ).&lt;br /&gt;&lt;br /&gt;Bon Prado utilise un systeme de template associé a une classe Php ( TPage ).&lt;br /&gt;Ce qui est interressant, c'est que il y a un grand nombre de classe encapsulant les concepts HTML.&lt;br /&gt;&lt;br /&gt;Voici une vue sur le frameWork&lt;br /&gt;&lt;a href="http://www.pradosoft.com/docs/manual/"&gt;http://www.pradosoft.com/docs/manual/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Je configure mon appli avec dans application.xml :&lt;span style="color: rgb(51, 51, 255);font-size:85%;" &gt;&lt;application id="model" mode="Debug"&gt;&lt;services&gt;&lt;/services&gt;&lt;/application&gt;&lt;/span&gt;&lt;br /&gt;service id="page" class="TPageService" DefaultPage="Home"&gt;&lt;br /&gt;&lt;br /&gt;Bon, je fais un petit test:&lt;br /&gt;Home.php:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);font-size:85%;" &gt;class Home extends TPage&lt;br /&gt;{&lt;br /&gt;public function onPreInit($param)&lt;br /&gt;{&lt;br /&gt;parent::onPreInit($param);&lt;br /&gt;echo "onPreInit";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public function onInit($param)&lt;br /&gt;{&lt;br /&gt;parent::onInit($param);&lt;br /&gt;echo "onInit";&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Home.page&lt;br /&gt;&lt;br /&gt;title&gt;Welcome to PRADO/title&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;h1&gt;Welcome to PRADO!/h1&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/span&gt;&lt;br /&gt;&lt;br /&gt;Et la j'ai effectivement afficher en premier :&lt;br /&gt;&lt;br /&gt;onPreInitonInit      &lt;h1&gt;Welcome to PRADO!&lt;/h1&gt;...&lt;br /&gt;L'interet aussi c'est que l'on n'a pas besoin de passer par le framework pour acceder a la base de donnée .&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.pradosoft.com/wiki/index.php/Simplified_Database_Authentication_Tutorial"&gt;http://www.pradosoft.com/wiki/index.php/Simplified_Database_Authentication_Tutorial&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On peut utiliser uniquement le systeme de template.&lt;br /&gt;&lt;br /&gt;Le systeme de template semble etre semblable a ASP enfin je crois :&lt;br /&gt;&lt;br /&gt;&lt; %# donnée ou membre  % &gt;&lt;br /&gt;&lt; %= function, ou methode  % &gt;&lt;br /&gt;&lt;br /&gt;Suite au prochain numéro.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1673332321871142560-7995564396544979309?l=vidalcharles.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vidalcharles.blogspot.com/feeds/7995564396544979309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1673332321871142560&amp;postID=7995564396544979309' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/7995564396544979309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/7995564396544979309'/><link rel='alternate' type='text/html' href='http://vidalcharles.blogspot.com/2009/06/premier-article-sur-prado.html' title='Premier Article sur Prado...'/><author><name>zebulon75018</name><uri>http://www.blogger.com/profile/14834421778162526027</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_viV3Fr9CugY/SPkEjGOnQZI/AAAAAAAABGE/ljsDwCykxus/S220/AAA.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673332321871142560.post-1015125759161872745</id><published>2009-02-08T23:25:00.000-08:00</published><updated>2009-02-08T23:29:33.095-08:00</updated><title type='text'>HtmlDocument Introspection in Treeview article</title><content type='html'>J'ai publié aujourd'hui &lt;a href="http://www.codeproject.com/KB/miscctrl/HtmlDocument_Introspectio.aspx"&gt;un nouvel article sur codeproject&lt;/a&gt; qui s'appelle&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;HtmlDocument introspection in TreeView.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Article traitant du composant webbrowser et de sa propriété Document.&lt;br /&gt;Ainsi on connait facilement l'ensemble des tag, des elements de formulaire, les liens, les images et aussi les css referant a la page web.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1673332321871142560-1015125759161872745?l=vidalcharles.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vidalcharles.blogspot.com/feeds/1015125759161872745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1673332321871142560&amp;postID=1015125759161872745' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/1015125759161872745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/1015125759161872745'/><link rel='alternate' type='text/html' href='http://vidalcharles.blogspot.com/2009/02/htmldocument-introspection-in-treeview.html' title='HtmlDocument Introspection in Treeview article'/><author><name>zebulon75018</name><uri>http://www.blogger.com/profile/14834421778162526027</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_viV3Fr9CugY/SPkEjGOnQZI/AAAAAAAABGE/ljsDwCykxus/S220/AAA.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673332321871142560.post-5960042741055382735</id><published>2009-02-04T13:34:00.000-08:00</published><updated>2009-02-10T17:01:21.351-08:00</updated><title type='text'>Parsing de float avec localisation US, la maudite virgule francaise.</title><content type='html'>Un post pour partager un soucis que j'ai souvent rencontré, c'est de parser un float anglais, alors que je suis francais.&lt;br /&gt;Effectivement en france, un nombre décimal s'écris avec une virgule exemple : 92,65&lt;br /&gt;alors que les anglais et les américains l'écrivent 92.65&lt;br /&gt;De nombreux logiciels ne prennent pas en compte ce détail culturel. Un détail peut être , mais en informatique souvent un bug possible.&lt;br /&gt;&lt;br /&gt;je voulais extraire les nombres des chaines :&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 51);"&gt;"Selector 21 | Property 61 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 51);"&gt;Input size: 1.609KiB  Output size: 1.26KiB  Compression ratio: 21.72%"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Pas de soucis ,j'utilise le FrameWork dotnet avec les expressions régulieres, sachant que le format est toujours le même, pour ce faire, mais lorsque je veux convertir&lt;br /&gt;1.609 en float j'ai une exception soulevé car windows veux 1,609 pour que la conversion soit effective.&lt;br /&gt;&lt;br /&gt;Il faut utiliser :&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;&lt;span style="font-style: italic;"&gt;using System.Globalization&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Donc j'ai du faire de la sorte :&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51);font-size:85%;" &gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                 Regex regex = new Regex("([0-9]+)");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                MatchCollection m = regex.Matches(lstStr[1]);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                if (m.Count &gt;= 2)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                    // Selector 21 | Property 61 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                    selector = Int32.Parse(m[0].Groups[0].Value);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                    property = Int32.Parse(m[1].Groups[0].Value);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                regex = new Regex("([0-9]+).([0-9]+)");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                //"Input size: 1.609KiB  Output size: 1.26KiB  Compression ratio: 21.72%\r"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                m = regex.Matches(lstStr[2]);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                if (m.Count &gt;= 3)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                    // Gets a NumberFormatInfo associated with the en-US culture.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                    NumberFormatInfo nfi = new CultureInfo("en-US", false).NumberFormat;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                    inputSize = float.Parse(m[0].Groups[0].Value,nfi);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                    outputSize = float.Parse(m[1].Groups[0].Value, nfi);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                    radio = float.Parse(m[2].Groups[0].Value, nfi);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Voila j'ai utilisé&lt;br /&gt;// Gets a NumberFormatInfo associated with the en-US culture.&lt;br /&gt;NumberFormatInfo nfi = new CultureInfo("en-US", false).NumberFormat;&lt;br /&gt;&lt;br /&gt;pour forcer le Framework a parser les floats au format US.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo.numberdecimalseparator.aspx"&gt;Reference MSDN &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1673332321871142560-5960042741055382735?l=vidalcharles.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vidalcharles.blogspot.com/feeds/5960042741055382735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1673332321871142560&amp;postID=5960042741055382735' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/5960042741055382735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/5960042741055382735'/><link rel='alternate' type='text/html' href='http://vidalcharles.blogspot.com/2009/02/parsing-de-float-avec-localisation-us.html' title='Parsing de float avec localisation US, la maudite virgule francaise.'/><author><name>zebulon75018</name><uri>http://www.blogger.com/profile/14834421778162526027</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_viV3Fr9CugY/SPkEjGOnQZI/AAAAAAAABGE/ljsDwCykxus/S220/AAA.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673332321871142560.post-314107502627328644</id><published>2009-02-03T13:59:00.000-08:00</published><updated>2009-02-03T14:24:39.172-08:00</updated><title type='text'>Process usage en C# avec redirection.</title><content type='html'>Les unixiens connaissent bien le concept de redirection de la sortie resultant d'un processus.&lt;br /&gt;Ceci est lié à des processus en mode console.&lt;br /&gt;&lt;a href="http://home.gna.org/unix-initiation/website/node21.html"&gt;Un processus en mode console a une entrée standart , une sortie standart et une sortie erreur standart ( suivé le lien pour plus d'explication ).&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ainsi les processus Windows peuvent caché aussi ce concept , mais cependant dans l'api DotNet, on retrouve ce concept.&lt;br /&gt;&lt;br /&gt;Voici le code, ici pour csstidy :&lt;br /&gt;&lt;br /&gt;   &lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;         Process process = new Process();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;            process.StartInfo.UseShellExecute = false;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;            process.StartInfo.RedirectStandardOutput = true;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;            process.StartInfo.RedirectStandardError = true;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;            process.StartInfo.CreateNoWindow = true;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;            process.StartInfo.FileName = "csstidy.exe";&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;            process.StartInfo.Arguments = cssFilemane + " outputtidy.css";&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;            process.Start();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;            result = process.StandardOutput.ReadToEnd();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;            error = process.StandardError.ReadToEnd();&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Vous aurez ainsi dans result le texte de sortie du processus.&lt;br /&gt;Si l'on veux scruter ce qu'il se passe dans le processus et par exemple ce dernier montre&lt;br /&gt;son avancement avec la sortie de # par exemple.&lt;br /&gt;On lira la sortie du processus :&lt;br /&gt;&lt;pre style="margin-top: 0pt;" id="pre3" lang="cs"&gt;&lt;span class="code-keyword"&gt;&lt;br /&gt;    &lt;span style="color: rgb(102, 102, 102);"&gt;while&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);"&gt; ((str = process.StandardOutput.ReadLine()) != &lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);" class="code-keyword"&gt;null&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;)&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;    }     &lt;br /&gt;&lt;/pre&gt;Regardez cette article pour plus de détail&lt;br /&gt;&lt;a href="http://www.codeproject.com/KB/threads/launchprocess.aspx"&gt;http://www.codeproject.com/KB/threads/launchprocess.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1673332321871142560-314107502627328644?l=vidalcharles.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vidalcharles.blogspot.com/feeds/314107502627328644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1673332321871142560&amp;postID=314107502627328644' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/314107502627328644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/314107502627328644'/><link rel='alternate' type='text/html' href='http://vidalcharles.blogspot.com/2009/02/process-usage-en-c-avec-redirection.html' title='Process usage en C# avec redirection.'/><author><name>zebulon75018</name><uri>http://www.blogger.com/profile/14834421778162526027</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_viV3Fr9CugY/SPkEjGOnQZI/AAAAAAAABGE/ljsDwCykxus/S220/AAA.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673332321871142560.post-5819421490870152172</id><published>2008-12-01T12:11:00.000-08:00</published><updated>2008-12-01T12:14:13.724-08:00</updated><title type='text'>Lecture des fichiers SWF en C#</title><content type='html'>J'ai publié sur codeproject.com &lt;a href="http://www.codeproject.com/KB/graphics/ReaderSWFHeader.aspx"&gt;un article pour lire l'entête d'un fichier SWF&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;J'ai trouvé un article permettant de faire plus de chose :&lt;br /&gt;&lt;a href="http://blogs.msdn.com/mswanson/archive/2006/10/15/example-c-code-for-reading-flash-swf-files.aspx"&gt;&lt;br /&gt;http://blogs.msdn.com/mswanson/archive/2006/10/15/example-c-code-for-reading-flash-swf-files.aspx&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;Bravo a son auteur.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1673332321871142560-5819421490870152172?l=vidalcharles.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vidalcharles.blogspot.com/feeds/5819421490870152172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1673332321871142560&amp;postID=5819421490870152172' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/5819421490870152172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/5819421490870152172'/><link rel='alternate' type='text/html' href='http://vidalcharles.blogspot.com/2008/12/lecture-des-fichiers-swf-en-c.html' title='Lecture des fichiers SWF en C#'/><author><name>zebulon75018</name><uri>http://www.blogger.com/profile/14834421778162526027</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_viV3Fr9CugY/SPkEjGOnQZI/AAAAAAAABGE/ljsDwCykxus/S220/AAA.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673332321871142560.post-3408654524854179412</id><published>2008-11-11T16:44:00.000-08:00</published><updated>2008-11-16T18:10:57.012-08:00</updated><title type='text'>Drag and Drop avec WinForm c#</title><content type='html'>Je fais un petit article, alors que je cherche a faire du drag and drop dans une application WinForm.&lt;br /&gt;J'ai déjà souvent du Drag and drop , mais la technique n'est pas forcement évidente pour&lt;br /&gt;commencer a Dragger un élement.&lt;br /&gt;Je fais aussi mon article pour pense bête.&lt;br /&gt;&lt;br /&gt;Pour commencer un element pour dragger un élement, il faut determiner le moment&lt;br /&gt;d'appeller la méthode :&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/fr-fr/library/system.windows.forms.control.dodragdrop%28VS.80%29.aspx"&gt;DoDragDrop&lt;/a&gt;(object obj,&lt;a href="http://msdn.microsoft.com/fr-fr/library/system.windows.forms.dragdropeffects%28VS.80%29.aspx"&gt;DragDropEffects&lt;/a&gt;);&lt;br /&gt;&lt;br /&gt;C'est une image que je souhaite déplacer par cette technique.&lt;br /&gt;Alors j'ajoute une variable a la Classe private bool mbClic = false.&lt;br /&gt;Puis je gére cette variable pour qu'elle reflète l'état de ma souris , pour savoir sur l'utilisateur a cliquer sur mon control.&lt;br /&gt;&lt;br /&gt;Puis à l'événement :&lt;br /&gt;&lt;span style="font-size:85%;"&gt; &lt;span style="color: rgb(102, 102, 102);"&gt;private void  xxxxxx_MouseMove(object sender, MouseEventArgs e)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;        {&lt;br /&gt;  &lt;/span&gt;  &lt;span style="color: rgb(102, 102, 102);"&gt;if (mIsClic)&lt;/span&gt; &lt;span style="color: rgb(102, 102, 102);"&gt;            {&lt;/span&gt; &lt;span style="color: rgb(102, 102, 102);"&gt;                DoDragDrop(mesdonnées, DragDropEffects.Move);&lt;/span&gt; &lt;span style="color: rgb(102, 102, 102);"&gt;            }&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;&lt;span style="font-size:85%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Ainsi voila votre élément est draggable .&lt;br /&gt;Apres il faut que le control accepte le Drag and Drop, et il y a  un evenement qui permet de&lt;br /&gt;savoir si l'element qui veut etre dragger est acceptable&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;private void xxxxx_DragOver(object sender, DragEventArgs e)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Pour savoir si le type est bon :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;     e.Data.&lt;a href="http://msdn.microsoft.com/fr-fr/library/ms597422.aspx"&gt;GetDataPresent&lt;/a&gt;(DataFormats.FileDrop) &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;pour savoir si c'est un fichier venant de l'explorateur.&lt;br /&gt;&lt;br /&gt;La difficulté est de connaitre le DataFormat parfois.&lt;br /&gt;&lt;br /&gt;Il y a une chose qui peux vous aider et moi m'a enduit en erreur.&lt;br /&gt;C'est à propos de l'événement :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.drageventargs.aspx"&gt;DragEventArgs et surtout ces valeurs X et Y qui sont absolue.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Il faut utilise la méthode PointToClient(new Point(e.X, e.Y)) du control&lt;br /&gt;sur lequel le Drop a été effectué.&lt;br /&gt;&lt;br /&gt;Ainsi vous pourrez réaliser un drag ans drop sur les éléments d'un même controle FlowLayout par exemple et vous baser sur ces coordonnées modifié pour déplacer le control drag parmi les autres:&lt;br /&gt;&lt;br /&gt;Voici la method pour deplacer un control dans in FlowLayout apres drag and drop sur le meme FlowLayout.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51);font-size:85%;" &gt;private void MoveInFlowLayout(Control &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 51);font-size:85%;" &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;cToMove &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 51);font-size:85%;" &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, Point pt)&lt;br /&gt;        {&lt;br /&gt;            int index = -1;&lt;br /&gt;            // Trouve l'index du control contenant le point x,y&lt;br /&gt;            foreach (Control c in FlowLayoutPanel.Controls)&lt;br /&gt;            {&lt;br /&gt;                if (&lt;br /&gt;                     (c.Location.Y &lt; pt.Y &amp;amp;&amp;amp; c.Location.X &lt; pt.X)&lt;br /&gt;                       &amp;amp;&amp;amp;&lt;br /&gt;                     (c.Location.Y + c.Height &gt; pt.Y &amp;amp;&amp;amp; c.Location.X + c.Width &gt; pt.X)&lt;br /&gt;                    )&lt;br /&gt;                {&lt;br /&gt;                    index = &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 51);font-size:85%;" &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;FlowLayoutPanel&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 51);font-size:85%;" &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.Controls.IndexOf(c);&lt;br /&gt;                }               &lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;           /// Dropper sur un zone vide alors on le deplace a la fin des éléments.&lt;br /&gt;            if (index == -1)&lt;br /&gt;            {&lt;br /&gt;                &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 51);font-size:85%;" &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;FlowLayoutPanel&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 51);font-size:85%;" &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.Controls.SetChildIndex(&lt;br /&gt;                        cToMove,&lt;br /&gt;                        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 51);font-size:85%;" &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;FlowLayoutPanel&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 51);font-size:85%;" &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.Controls.Count&lt;br /&gt;                        );&lt;br /&gt;            }&lt;br /&gt;            else&lt;br /&gt;            {&lt;br /&gt;                // On l'insere a l'endroit du control trouvé.&lt;br /&gt;                &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 51);font-size:85%;" &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;FlowLayoutPanel&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 51);font-size:85%;" &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.Controls.SetChildIndex(&lt;br /&gt;                      cToMove, index);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;h3 style="font-family: arial; color: rgb(51, 51, 51);" class="r"&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.drageventargs.aspx" class="l" onmousedown="return clk(this.href,'','','res','1','')"&gt;&lt;em&gt;&lt;em&gt;&lt;br /&gt;&lt;/em&gt;&lt;/em&gt;&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(51, 51, 51);font-size:85%;" &gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1673332321871142560-3408654524854179412?l=vidalcharles.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vidalcharles.blogspot.com/feeds/3408654524854179412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1673332321871142560&amp;postID=3408654524854179412' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/3408654524854179412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/3408654524854179412'/><link rel='alternate' type='text/html' href='http://vidalcharles.blogspot.com/2008/11/drag-and-drop-avec-winform-c.html' title='Drag and Drop avec WinForm c#'/><author><name>zebulon75018</name><uri>http://www.blogger.com/profile/14834421778162526027</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_viV3Fr9CugY/SPkEjGOnQZI/AAAAAAAABGE/ljsDwCykxus/S220/AAA.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673332321871142560.post-1102394837619374601</id><published>2008-11-01T19:23:00.000-07:00</published><updated>2008-11-16T17:53:32.273-08:00</updated><title type='text'>XmlSerialisation en c#</title><content type='html'>La &lt;a href="http://fr.wikipedia.org/wiki/S%C3%A9rialisation"&gt;serialisation &lt;/a&gt;est une technique pratique.&lt;br /&gt;En dotnet 2 elle est facilitée par des elements du framework.&lt;br /&gt;&lt;br /&gt;Le compilateur utilise des nouveau mot clés et meme concept tres interressant:&lt;br /&gt;c'est des directive entre [... ]&lt;br /&gt;&lt;br /&gt;Attention cela n'a rien a voir avec la precompilation , qui reste assez basique.&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ed8yd1ha.aspx"&gt;C# possede aussi un preprocesseur &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Cela sert a la serialisation et aussi pour des elements d'ihm dans les propertyGrid.&lt;br /&gt;j'ai helas pas plus de renseignement a vous donner ici.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Plus de renseingement &lt;a href="http://msdn.microsoft.com/en-us/library/system.xml.serialization.aspx"&gt;ici&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;using System.Xml.Serialization;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Apres indiqué avant la déclaration de la classe :&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(102, 102, 102); font-style: italic;"&gt;[Serializable]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;et si c'est l'element racine :&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51);font-size:85%;" &gt;&lt;span style="font-style: italic;"&gt;[System.Xml.Serialization.XmlRoot("MaClasseSerialisee")]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;ou&lt;br /&gt;pour d'autre element&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);font-size:85%;" &gt;[System.Xml.Serialization.XmlElementAttribute("Employee")]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Pour ajouter des attributs:&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);font-size:85%;" &gt;[XmlAttributeAttribute(DataType = "string")]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Mon probleme etait de serialisé un Generics du Style List&lt;br /&gt;&lt;string&gt; mListImg;&lt;br /&gt;Et pour cela j'ai utilisé des getter/setter transformant le type en string[] et ca marche :).&lt;br /&gt;&lt;br /&gt;Exemple :&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt; [Serializable]&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;    [XmlRootAttribute("ConfigGallery", Namespace = "", IsNullable = false)]    &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;    public class ConfigGalllery &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;        [XmlAttributeAttribute(DataType = "int")]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;        public int widthThumb;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;        [XmlAttributeAttribute(DataType = "int")]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;        public int row;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;        [XmlAttributeAttribute(DataType = "int")]&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;        public int column;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;        [XmlElement(DataType = "string")]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;        public string mFinalDirectory;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;        [XmlIgnoreAttribute()]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;        List&lt;string&gt; mListImg; &lt;/string&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;        [XmlArrayItem("ListItem", typeof(string))]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;        [XmlArray("List")]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;        public string[] ImgList{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;            get&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;            {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;     string[] a = new string[mListImg.imgs.Count];&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;    int n= 0;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;  foreach (string t in mListImg)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;                 { &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;                       a[n++]= t;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;                 }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;                 return a;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;            }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;            set&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;             {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;                   mListImg = new List&lt;string&gt;();&lt;/string&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;                  foreach(string s in value )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;                  {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;                       mListImg.AddImage(s);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;                  }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;             }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51); font-style: italic;"&gt;        }       &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Résultat:&lt;span style="font-style: italic; color: rgb(51, 51, 51);"&gt;&lt;br /&gt;&lt;pre&gt;configgallery xsi="http://www.w3.org/2001/XMLSchema-instance" xsd="http://www.w3.org/2001/XMLSchema" widththumb="0" row="0" column="0"&gt;&lt;br /&gt;list&gt;&lt;br /&gt;listitem&gt;C:\motion.png&lt; /listitem&gt;&lt;br /&gt;listitem&gt;C:\testPicture.jpeg /listitem&gt;&lt;br /&gt;/list&gt;&lt;br /&gt;/configgallery&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 51);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;Avec comme methode pour serialisé&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);font-size:85%;" &gt;public void SaveConfig(string fileName)&lt;br /&gt;  {&lt;br /&gt;      StreamWriter writer = null;&lt;br /&gt;      try&lt;br /&gt;      {&lt;br /&gt;          XmlSerializer ser = new XmlSerializer(typeof(UltimateThumbnailCreator.core.ConfigGalllery));&lt;br /&gt;          writer = new StreamWriter(fileName);&lt;br /&gt;          ser.Serialize(writer, this);&lt;br /&gt;      }&lt;br /&gt;      catch (Exception ex)&lt;br /&gt;      {&lt;br /&gt;&lt;br /&gt;Réf: &lt;a href="http://www.codeproject.com/KB/XML/GameCatalog.aspx"&gt;http://www.codeproject.com/KB/XML/GameCatalog.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Ref: &lt;a href="http://www.codeproject.com/KB/XML/xml_serializationasp.aspx"&gt;http://www.codeproject.com/KB/XML/xml_serializationasp.aspx&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;a name="#4862"&gt;&lt;b&gt;.        &lt;/b&gt;&lt;/a&gt;&lt;b&gt;&lt;a id="ctl00_MC_AFR_ctl06_AT" href="http://www.codeproject.com/KB/XML/cardfileserializationdemo.aspx"&gt;XML Data Files, XML Serialization, and .NET&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;     &lt;br /&gt;&lt;br /&gt;Cependant la serialisation à encore quelques secrets pour moi&lt;br /&gt;Un lien tres intéressante pour créer vos classes à partir d'un fichier xml :&lt;br /&gt;&lt;a href="http://www.bonesoft.com/XmlModeler/Demo.aspx"&gt;http://www.bonesoft.com/XmlModeler/Demo.aspx&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/string&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1673332321871142560-1102394837619374601?l=vidalcharles.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vidalcharles.blogspot.com/feeds/1102394837619374601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1673332321871142560&amp;postID=1102394837619374601' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/1102394837619374601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/1102394837619374601'/><link rel='alternate' type='text/html' href='http://vidalcharles.blogspot.com/2008/11/xmlserialisation-en-c.html' title='XmlSerialisation en c#'/><author><name>zebulon75018</name><uri>http://www.blogger.com/profile/14834421778162526027</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_viV3Fr9CugY/SPkEjGOnQZI/AAAAAAAABGE/ljsDwCykxus/S220/AAA.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673332321871142560.post-4796888872353092122</id><published>2008-10-30T18:35:00.000-07:00</published><updated>2008-10-30T19:05:13.495-07:00</updated><title type='text'>Utilisation de PropertyGrid avec des elements de TreeView.</title><content type='html'>Le framework Dotnet possede des widgets tres interressantes.&lt;br /&gt;Comme les TreeView s certe assez classique.&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.treeview.aspx" class="l" onmousedown="return clk(this.href,'','','res','1','')"&gt;&lt;em&gt;           TreeView&lt;/em&gt; Class (System.Windows.Forms)&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="std nobr"&gt;&lt;/span&gt;Mais aussi une widget tres sympa PropertyGrid&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302326.aspx" class="l" onmousedown="return clk(this.href,'','','res','7','')"&gt;              Getting the Most Out of the .NET Framework &lt;em&gt;PropertyGrid&lt;/em&gt; Control&lt;/a&gt;&lt;/span&gt;&lt;span class="std nobr"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://i.msdn.microsoft.com/Aa302326.usingpropgrid01%28en-us,MSDN.10%29.gif"&gt;&lt;img style="cursor: pointer; width: 198px; height: 198px;" src="http://i.msdn.microsoft.com/Aa302326.usingpropgrid01%28en-us,MSDN.10%29.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Pour afficher les proprietés d'un objet dans la PropetyGrid, le code est simplicime.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;      propertyGrid1.SelectedObject = yourObject;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Il faut cependant que yourObject derive de Object.&lt;br /&gt;&lt;br /&gt;Voila mon problème est le suivant, j'ai un treeView sur des element Html provenant&lt;br /&gt;des elements du document html telechargé.&lt;br /&gt;Je remplit recursivement mon treeView avec les elements Html.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt; private void FillTree(HtmlElement hElmFather, TreeNodeHtmlElm t)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;            foreach (HtmlElement hElm in hElmFather.Children)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;            {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;                t.Nodes.Add(hElm.InnerText);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;                if (hElm.Children.Count &gt; 0)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;                {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;                    FillTree(hElm, node);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;                }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;            }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Methode recursive qui marche tres bien , j'ai ainsi un TreeView avec les elements hierarchiques de mon document html.&lt;br /&gt;et je voudrais afficher les proprietés de ces elements dans la ProprytyGrid.&lt;br /&gt;&lt;br /&gt;Lorsque je selectionne un element du TreeView alors j'ai des un Event :&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  &lt;br /&gt;      private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Mais mon &lt;span style="font-style: italic;"&gt;treeView1.SelectedNode &lt;/span&gt;élement selectionné ne contient pas les proprietés de mes&lt;br /&gt;element Html , mais de la node du TreeView.&lt;br /&gt;&lt;span class="std nobr"&gt;&lt;br /&gt;Voici la solution trouvée et je pense la meilleur enfin j'espere.&lt;br /&gt;&lt;br /&gt;Il faut dérivé la class TreeNode en TreeNodeHtmlElm :&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt; public class TreeNodeHtmlElm : TreeNode&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;            public HtmlElement mHtmlElement;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;            public TreeNodeHtmlElm(HtmlElement elm) : base()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;            {                &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;                mHtmlElement = elm;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;                Text = elm.OuterText;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;            }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;        };&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Apres au lieu d'ajouter un TreeNode , vous ajoutez un TreeNodeHtmlElm&lt;span style="font-style: italic;"&gt;.&lt;br /&gt;&lt;/span&gt;Cependant la construction pour que la compilation s'effectue bien, est un peu differente&lt;br /&gt;ce qui reste un mystere pour moi.&lt;br /&gt;&lt;br /&gt;Il faut faire ainsi :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;private void FillTree(HtmlElement hElmFather, TreeNodeHtmlElm t)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;            foreach (HtmlElement hElm in hElmFather.Children)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;            {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;                TreeNodeHtmlElm node = new TreeNodeHtmlElm(hElm);                &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;                t.Nodes.Add((TreeNode)node);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;                if (hElm.Children.Count &gt; 0)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;                {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;                    FillTree(hElm, node);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;                }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;            }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;On&lt;/span&gt; est obligé de passer pas une variable temporaire sinon cela ne compile pas.&lt;br /&gt;&lt;br /&gt;Et apres faites comme ceci pour voir les proprietés dans l'objet dans la propertyGrid:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt; TreeNodeHtmlElm tn = (TreeNodeHtmlElm)(treeView1.SelectedNode);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;propertyGrid1.SelectedObject = tn.mHtmlElement;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;J'essayerais de faire un article sur codeproject pour mieux mettre en oeuvre cela.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1673332321871142560-4796888872353092122?l=vidalcharles.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vidalcharles.blogspot.com/feeds/4796888872353092122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1673332321871142560&amp;postID=4796888872353092122' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/4796888872353092122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/4796888872353092122'/><link rel='alternate' type='text/html' href='http://vidalcharles.blogspot.com/2008/10/utilisation-de-propertygrid-avec-des.html' title='Utilisation de PropertyGrid avec des elements de TreeView.'/><author><name>zebulon75018</name><uri>http://www.blogger.com/profile/14834421778162526027</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_viV3Fr9CugY/SPkEjGOnQZI/AAAAAAAABGE/ljsDwCykxus/S220/AAA.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673332321871142560.post-1609195482679691462</id><published>2008-10-27T15:12:00.000-07:00</published><updated>2008-10-27T19:31:44.223-07:00</updated><title type='text'>Article sur Code Project : a Graphical Rectangle Resizable</title><content type='html'>Je voulais une zone rectangulaire de sélection dans une zone de Dessin pour un programme en c#.&lt;br /&gt;Je l'ai fait est je me suis dis qu'il fallait que je partage ce petit bout de code avec d'autre.&lt;br /&gt;&lt;br /&gt;L'idee est d'afficher un rectangle avec des poignées pour le redimensionner comme on veux.&lt;br /&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class="on" style="display: block;" id="formatbar_Add_Image" title="Add Image" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="addImage();" onmousedown="CheckFormatting(event);;ButtonMouseDown(this);"&gt;&lt;img src="http://www.blogger.com/img/blank.gif" alt="Add Image" class="gl_photo" border="0" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Voici le lien :&lt;br /&gt;&lt;span id="ctl00_MC_AR_ctl03_MAS"&gt;&lt;/span&gt;&lt;b&gt;&lt;a id="ctl00_MC_AR_ctl03_AT" href="http://www.codeproject.com/KB/graphics/RectangleResizable.aspx"&gt;a Graphical Rectangle Resizable&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Et quelle fut ma surprise quand j'ai vu que &lt;a href="http://www.codeproject.com/script/Membership/Profiles.aspx?mid=1311446"&gt;Ilíon&lt;/a&gt; a mis un commentaire.&lt;br /&gt;Il m'a félicité, et aimerais que le rectangle ne dépasse pas la zone.&lt;br /&gt;&lt;br /&gt;Donc j'ai fait cela de la maniere suivante:&lt;br /&gt;A la fin des modifications alors je teste si le rectangle est toujours dans la zone.&lt;br /&gt;Si non soit on bloque la valeur ou je reduis la hauteur et la largeur du rectangle.&lt;br /&gt;&lt;br /&gt;public bool allowDeformingDuringMovement=true ;&lt;br /&gt;&lt;br /&gt;Si l'on bouge le rectangle contre les bords alors il s'applatit ( la hauteur ou la largeur diminue suivant le sens ).&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;&lt;br /&gt;        if (rect.X + rect.Width &gt; mPictureBox.Width)&lt;br /&gt;        {&lt;br /&gt;            rect.Width = mPictureBox.Width - rect.X - 1; // -1 to be still show&lt;br /&gt;            if (allowDeformingDuringMovement == false)&lt;br /&gt;            {&lt;br /&gt;                mIsClick = false; // on arrete les mouvements&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        if (rect.Y + rect.Height &gt; mPictureBox.Height)&lt;br /&gt;        {&lt;br /&gt;            rect.Height = mPictureBox.Height - rect.Y - 1;// -1 to be still show&lt;br /&gt;            if (allowDeformingDuringMovement == false)&lt;br /&gt;            {&lt;br /&gt;                mIsClick = false; // on arrete les mouvement.&lt;br /&gt;            }&lt;br /&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_viV3Fr9CugY/SQZF9T52iYI/AAAAAAAABHw/xY4h7gX02d8/s1600-h/no_deformation.gif"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1673332321871142560-1609195482679691462?l=vidalcharles.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vidalcharles.blogspot.com/feeds/1609195482679691462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1673332321871142560&amp;postID=1609195482679691462' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/1609195482679691462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/1609195482679691462'/><link rel='alternate' type='text/html' href='http://vidalcharles.blogspot.com/2008/10/article-sur-code-project-graphical.html' title='Article sur Code Project : a Graphical Rectangle Resizable'/><author><name>zebulon75018</name><uri>http://www.blogger.com/profile/14834421778162526027</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_viV3Fr9CugY/SPkEjGOnQZI/AAAAAAAABGE/ljsDwCykxus/S220/AAA.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673332321871142560.post-7233967640403916445</id><published>2008-10-26T16:14:00.000-07:00</published><updated>2008-10-27T14:07:52.342-07:00</updated><title type='text'>J'ai utilisé : TemplateMaschine c#</title><content type='html'>J'ai utilisé : &lt;a class="listitem" href="http://www.stefansarstedt.com/templatemaschine.html"&gt;TemplateMaschine&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Utiliser pour generer des pages web :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;La template &lt;/span&gt;&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;Bon je vais vous decrire brievement :&lt;br /&gt;Ma page html doit contenir une entete declarative des variables utilisés :&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102); font-style: italic;"&gt;&amp;lt;%@ Import NameSpace="System.Collections.Generic" %&amp;rt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102); font-style: italic;"&gt;&amp;lt;%@ Argument Name="elm" Type="List&lt;string&gt;" %&gt;&lt;/string&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102); font-style: italic;"&gt;&amp;lt;%@ Argument Name="content" Type="String" %&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;J'importe le namespace pour utilisé les listes ( NET 2 )&lt;br /&gt;Et j'ai une liste de pages en liens ( home , galllery , product , contact .... )&lt;br /&gt;Et aussi un contenu html&lt;br /&gt;&lt;br /&gt;Voici l'integration dans la page web.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;...&lt;/span&gt;&lt;br /&gt;&lt;!-- menu below, copy and paste the menudivider.jpg code as necessary --&gt; [html]&lt;br /&gt;....&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(153, 153, 153);"&gt;&lt;% int n = 0;   foreach(string attr in elm) { %&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[html]&lt;br /&gt;&lt;br /&gt;&lt;a href="http://somewhere/"&gt;&lt;span style="font-style: italic; color: rgb(153, 153, 153);"&gt;&lt;%=attr%&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;[html]&lt;br /&gt;.....&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(153, 153, 153);"&gt;&lt;%   } %&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(153, 153, 153);"&gt;..&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;et pour la variable contenu :&lt;br /&gt;&lt;br /&gt;&lt;!-- add your content below --&gt; [html]&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(153, 153, 153);"&gt;&lt;%=content%&gt;&lt;/span&gt;&lt;br /&gt;&lt;!-- end content area --&gt; [html]&lt;br /&gt;&lt;br /&gt;[html] : reprensente de code html difficilement integrable ici.&lt;br /&gt;Le code est placé ente &lt;% et %&gt; ( comme en ASP , et peut etre JSP )  ( PHP etant et co )&lt;br /&gt;Ici pas de echo "content" ( php ) , mais &lt;%=content%&gt; pour afficher la valeur string de la variable&lt;br /&gt;&lt;br /&gt;J'ai un mauvais souvenir des jsp car ils modifé la page en l'incluant dans du code ...&lt;br /&gt;et le compile dans un fichier temporaire ...&lt;br /&gt;&lt;br /&gt;Bon la c'est un peu la meme chose je crois , on profite des fonctionnalités de la compilation dynamique de c#/dotnet ( donet ecrit et compile apres le fichier dans un repertoire temporaire)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;        &lt;a id="ctl00_MC_AFR_ctl10_AT" href="http://69.10.233.10/KB/cs/evalcscode.aspx"&gt;Evaluate C# Code (Eval Function)&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;pre style="margin-top: 0pt;" id="pre0" lang="cs"&gt;icc.CompileAssemblyFromSource&lt;/pre&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Le source c#:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;il faut importer&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;using TemplateMaschine;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;L'appel a template se faire alors ainsi :&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153); font-style: italic;"&gt;Template myTemplate = new Template(GetTemplatePage());&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153); font-style: italic;"&gt;myTemplate.Generate(&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153); font-style: italic;"&gt;                                                          new object[] {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153); font-style: italic;"&gt;                                          elmPages, /// &lt;- ceci est une List&lt;/span&gt;&lt;string&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153); font-style: italic;"&gt;                                          page.HtmlContent,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153); font-style: italic;"&gt;                                    }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153); font-style: italic;"&gt;              , "generated\\" + page.Name + ".html"&lt;br /&gt;             );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Moi je suis content car ca marche plus bien , bravo a l'auteur de ces classes de template&lt;br /&gt;me permettant d'avoir l'ensemble de la puissance de c#&lt;br /&gt;&lt;br /&gt;Cependant pour des templates Html, il faut patcher TemplateMaschine.cs.&lt;br /&gt;Il faut modifier la methode &lt;span style="font-weight: bold;"&gt;private TokenInfo NextToken()&lt;/span&gt; pour que les commentaires et les scripts ne soient pas pris en compte.&lt;br /&gt;&lt;/string&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1673332321871142560-7233967640403916445?l=vidalcharles.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vidalcharles.blogspot.com/feeds/7233967640403916445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1673332321871142560&amp;postID=7233967640403916445' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/7233967640403916445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/7233967640403916445'/><link rel='alternate' type='text/html' href='http://vidalcharles.blogspot.com/2008/10/jai-utilis-templatemaschine-c.html' title='J&apos;ai utilisé : TemplateMaschine c#'/><author><name>zebulon75018</name><uri>http://www.blogger.com/profile/14834421778162526027</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_viV3Fr9CugY/SPkEjGOnQZI/AAAAAAAABGE/ljsDwCykxus/S220/AAA.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673332321871142560.post-3099680950063519348</id><published>2008-10-17T14:53:00.000-07:00</published><updated>2008-10-17T16:32:00.671-07:00</updated><title type='text'>Mon premier article.</title><content type='html'>Voila, je fais du develloppement professionnellement depuis 12 ans.&lt;br /&gt;J'ai commencé par du basic &lt;a href="http://fr.wikipedia.org/wiki/Amstrad_CPC"&gt; amstrad cpc 64,( j'avais publier un jeux dans  Amstrad CPC )&lt;/a&gt;&lt;br /&gt;Puis a la fac pascal ,puis du C, C++,&lt;br /&gt;Au boulot Java , PHP et aussi du C#&lt;br /&gt;&lt;br /&gt;J'ai bien les fonctionnalités de ce langage (c#)&lt;br /&gt;Je vous propose dans ce blog de faire mes remarques et mes articles ici.&lt;br /&gt;J'en ai deja ecris plusieurs:&lt;br /&gt;&lt;h3&gt;Mes petits articles &lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://vidalcharles.free.fr/tclandc.htm"&gt;petit Article sur la programmation entre tcl-Tk et le C&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://vidalcharles.free.fr/lf/tcltut1.html"&gt;petite traduction sur la programmation en tcl-Tk&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://vidalcharles.free.fr/launch/launch.htm"&gt;petit Article sur la programmation d'application sous X11, launcher xlockmore&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://matrix.samizdat.net/pratique/documentation/guide-survie-VI.html"&gt;Guide de survie sous VI&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;Articles sur linux focus&lt;/h3&gt; &lt;ol&gt;&lt;li&gt; &lt;a href="http://www.linuxfocus.org/Francais/July1998/article54.html"&gt;Linux au service des artistes chez BUF COMPAGNIE&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://www.linuxfocus.org/Francais/November1998/article69.html"&gt;Interview de David Bagley&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://www.linuxfocus.org/Francais/September2000/article158.shtml"&gt;MagicPoint&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://www.linuxfocus.org/Francais/November2000/article174.shtml"&gt;Introduction a Tk&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://www.linuxfocus.org/Francais/May2000/article122.shtml"&gt;Apache &lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;  &lt;h3&gt;Mes Documentations sur Php&lt;/h3&gt; &lt;ol&gt;&lt;li&gt;&lt;a href="http://mmmm.free.fr/doc/pointfunc.html"&gt; "Pointeur" de fonction ou comment passer une fonction en argument d'une autre  PHP 3&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://mmmm.free.fr/doc/doctreephp.html"&gt; Structure arborescente dans PHP &lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://mmmm.free.fr/doc/docjeuvi.html"&gt;Jeux de la vie en PHP &lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://mmmm.free.fr/doc/phpobj.html"&gt; PHP Le cote object de la force &lt;/a&gt;  &lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;Mes Articles sur Code Project&lt;/span&gt;&lt;br /&gt;&lt;div class="SmallText"  style="width: 650px; margin-left: 40px; margin-top: 10px;font-family:arial;"&gt;   &lt;span style="font-size:85%;"&gt;&lt;span id="ctl00_MC_AR_ctl01_MAS"&gt;      &lt;b&gt;&lt;a id="ctl00_MC_AR_ctl01_AT" href="http://www.codeproject.com/KB/miscctrl/MozillaIEWrapper.aspx"&gt;Browsers Wrapper ( Mozilla IE )&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="SmallText"  style="width: 650px; margin-left: 40px; margin-top: 10px;font-family:arial;"&gt;   &lt;span style="font-size:85%;"&gt;&lt;span id="ctl00_MC_AR_ctl02_MAS"&gt;      &lt;b&gt;&lt;a id="ctl00_MC_AR_ctl02_AT" href="http://www.codeproject.com/KB/graphics/ReaderSWFHeader.aspx"&gt;Reader of SWF header file in pure C#&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="SmallText"  style="width: 650px; margin-left: 40px; margin-top: 10px;font-family:arial;"&gt;   &lt;span style="font-size:85%;"&gt;&lt;span id="ctl00_MC_AR_ctl03_MAS"&gt;      &lt;b&gt;&lt;a id="ctl00_MC_AR_ctl03_AT" href="http://www.codeproject.com/KB/work/CSXDock.aspx"&gt;Convertion of Xdock VB to CS by  C-Sharpener For VB.&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1673332321871142560-3099680950063519348?l=vidalcharles.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vidalcharles.blogspot.com/feeds/3099680950063519348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1673332321871142560&amp;postID=3099680950063519348' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/3099680950063519348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673332321871142560/posts/default/3099680950063519348'/><link rel='alternate' type='text/html' href='http://vidalcharles.blogspot.com/2008/10/mon-premier-article.html' title='Mon premier article.'/><author><name>zebulon75018</name><uri>http://www.blogger.com/profile/14834421778162526027</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_viV3Fr9CugY/SPkEjGOnQZI/AAAAAAAABGE/ljsDwCykxus/S220/AAA.jpg'/></author><thr:total>0</thr:total></entry></feed>
