Personnaliser l'aide de Purebasic

Informations pour bien débuter en PureBasic
Mesa
Messages : 1093
Inscription : mer. 14/sept./2011 16:59

Personnaliser l'aide de Purebasic

Message par Mesa »

Peut-être avez-vous envie de traduire en français les quelques pages encore en anglais de l'aide de Purebasic,
ou de ne pas attendre leurs traductions officielles lors de la prochaine mise à jour ?

Ou bien vous avez peut-être envie de personnaliser l'aide,
ou de lui adjoindre de nouvelles données ?


Ce petit tuto vous permettra de faire tout cela.

Tout d'abord ce tuto ne s'adresse qu'aux utilisateurs de Windows, désolé aux linuxiens et autres MacOSien ...

Qu'est-ce qu'un fichier .CHM ?
C'est un fichier composé de plusieurs fichier .HTML compressés et "compilés" avec un fichier-sommaire et un fichier-index.

Image


De quoi avons-nous besoin ?
Nous avons besoin du fichier d'aide de Purebasic que vous trouverez dans votre dossier Progam file (ou Programmes)
puis dans le dossier Purebasic. Son nom est PureBasic.chm

Vous aurez besoin d'un utilitaire fourni par Microsoft, le Microsoft HTML Help Workshop
à cette adresse : http://go.microsoft.com/fwlink/?LinkId=14188
En cas de problème, jetez un coup d'œil à cette adresse,
http://www.microsoft.com/downloads/deta ... n#filelist
Téléchargez-le et installez-le avec les optons par défaut.

Je vous ai aussi concocté un fichier rar avec tout ce qu'il faut.

(Sous linux et sous MacOS, vous utiliserez chmviewer ici
http://www.macupdate.com/info.php/id/13835
ou là :
http://www.herdsoft.com/linux/themen/chmviewer.html)


La personnalisation se fera en 3 phases :
  • PHASE N°1 : La décompilation.
    PHASE N°2 : La traduction.
    PHASE N°3 : La recompilation.
PHASE N°1 : La décompilation.
Tout d'abord, nous allons décompiler le fichier Purebasic.chm afin de récupérer les fichiers .html,
le fichier-sommaire et le fichier-index.

Pour cela, créez un répertoire avec le Purebasic.chm à l'intérieur.

Vous avez dans votre dossier Windows un exécutable qui s'appelle hh.exe qui va s'occuper de la décompilation.
Créez un fichier decompile.bat avec le bloc-note et ajouter la ligne suivante :
hh.exe -decompile <chemin du dossier final> <chemin du dossier source + Purebasic.chm>

decompile.bat :

Code : Tout sélectionner

hh.exe -decompile decompile Purebasic.chm
Il se peut que votre Windows crée à votre insu un fichier .bat.txt qui est un simple fichier texte qui ne s'exécutera pas.
Il faut aller dans le panneau de configuration, options de dossier puis affichage et décocher "masquer les extensions des fichiers dont le type est connu".
Vous aurez aussi des problèmes si vous utilisez un chemin avec des espaces.
Par exemple c:\program Files\...Il faut utiliser les guillemets "".


Pour vous faciliter la tâche, j'ai créé un fichier batch qui s'occupe de tout, il s'appelle "decompile.bat",
mettez-le dans le même dossier que Purebasic.chm et double-cliquez dessus.
Image

La décompilation prend quelques secondes et le dossier "decompile" apparaît.
Image

À l'intérieur se trouve le trésor...
Image


PHASE N°2 : La traduction.
Nous allons traduire les pages "CanvasGadget.html " et " CanvasOutput.html " du dossier "gadget".

Image

Ici, je vous laisse le choix de votre éditeur html, il existe notepad++, compozer, etc...
(voir ici http://www.01net.com/telecharger/window ... r_de_site/)

Comme c'est une simple traduction, nous n'aurons pas à éditer le sommaire ni l'index qui sont de simple fichier xml que l'on peut ouvrir avec le bloc-note, par exemple, ou par le html workshop de Microsoft, le petit utilitaire que vous venez juste d'installer...

Je vous ai encore une fois mâché le travail et vous trouverez les 2 fichiers déjà traduits dans le rar et leur code html se trouve dans les posts ci-dessous.


PHASE N°3 : La recompilation.
Il existe la méthode rapide ou la méthode longue, au choix.

La méthode rapide : Copiez le fichier hhc.exe du dossier program files\ HTML Help Workshop\ dans votre dossier "decompile".
Copiez aussi le fichier "recompile.bat" et Purebasic.hhp qui provient du rar.
Double-cliquer sur recompile et le nouveau fichier PureBasic.chm apparaît.

Le fichier recompile.bat contient la commande :

Code : Tout sélectionner

hhc Purebasic.hhp
Le fichier Purebasic.hhp contient le texte :

Code : Tout sélectionner

[OPTIONS]
Compatibility=1.1 or later
Compiled file=Purebasic.chm
Contents file=Table of Contents.hhc
Default topic=Reference\reference.html
Display compile progress=No
Index file=Index.hhk
Language=0x40c Français (France)


[FILES]


[INFOTYPES]

Image

Recompilation en cours...
Image

Et voilà le résultat.
Image

Image


Quant à la version longue, je préfère vous renvoyer sur le tuto ad-hoc à cette adresse
http://www.siteduzero.com/tutoriel-3-34 ... r-chm.html

Pour qui veut, je peut vous envoyer mon Purebasic.chm, il pèse 2.16 Mo.
Pour le fichier .rar, je peux vous l'envoyer par mail.

Le code html de "CanvasGadget.html"

Code : Tout sélectionner

<html><head><title>CanvasGadget</title><style type="text/css">
table.parameters { border-spacing: 0px; border-style: none; border-collapse: collapse; }
table.parameters td { border-width: 1px; padding: 6px; border-style: solid; border-color: gray; vertical-align: top; }
</style>
</head>
<body bgcolor="#FFFFDF" link="#009999" vlink="#006666" alink="#006666">
<p align="center"><font face="Arial" size="2"><b><font size="4">CanvasGadget()</font></b></font></p>
<p><font face="Arial" size="2"><b>Syntaxe</b></font></p><blockquote>
<font face="Arial" size="2">Resultat = <font color="#006666"><b>CanvasGadget</b></font>(#Gadget, x, y, <font size="2" face="Arial">Largeur, Hauteur</font><font face="Arial" size="2"> [, Options])<br>&nbsp;</font></font></blockquote>

<font face="Arial" size="2"><font face="Arial" size="2"><b>Description</b><br></font></font><blockquote>

<font face="Arial" size="2"><font face="Arial" size="2">Crée un canvas blanc 
    par défaut <font size="2" face="Arial">dans la GadgetList en cours. 
Si <a href="file:///F:/zTemp/chm/purebasic/decompile/reference/purebasic_objects.html">#PB_Any</a> est utilisé pour le paramètre '#Gadget', le numéro du nouveau gadget sera renvoyé dans 'Resultat'. 
#Gadget sera la valeur retournée par la fonction <a href="file:///F:/zTemp/chm/purebasic/decompile/window/eventgadget.html">EventGadget()</a>. x et y sont les coordonnées de la position du 
canvas dans la fenêtre. 'Largeur' et 'Hauteur' sont ses dimensions<br>  
    </font></font></font><p><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2">Un canvas est une surface d'affichage et 
    de dessin utilisant le clavier et la souris. 

    </font></font></font></p>
</blockquote>
<p style="margin-left:40;"><font face="Arial" size="2"><font face="Arial" size="2"><font size="2" face="Arial">Le paramètre facultatif 'Options' peut être une combinaison des constantes suivantes: 


</font></font></font><p>
<pre><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Courier New, Courier, mono" size="2"><font color="#924B72">        #PB_Canvas_Border</font>   : Dessine une bordure autour du gadget.
        <font color="#924B72">#PB_Canvas_ClipMouse</font>: Capture la souris tant qu'un bouton est appuyé. <br>        <font color="#924B72">#PB_Canvas_Keyboard</font> : Capture les évènements et le focus du clavier.
        <font color="#924B72">#PB_Canvas_DrawFocus</font>: Dessine un rectangle de focus.</font></font></font></font></pre><p style="margin-left:40;"><font face="Arial" size="1"><font face="Arial"><font face="Arial">P</font></font>our 
gérer le focus, il est aussi possible d'utiliser<font face="Arial"><font face="Arial"> 
l'option  </font></font></font><font face="Arial" size="1" color="#924B72">#PB_Canvas_Keyboard 
</font><font face="Arial" size="1"><font face="Arial"><font face="Arial">avec 
les évènements&nbsp;</font></font></font><font color="#924B72" face="Arial" size="1">#PB_EventType_Focus</font><font face="Arial" size="1"> et 
&nbsp;</font><font color="#924B72" face="Arial" size="1">#PB_EventType_LostFocus 
</font><font face="Arial" size="1">pour 
afficher une indication visuelle sur le gadget.</font></p>
<p style="margin-left:40;"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2">Les évènements sont : 
    </font></font></font></font><blockquote>

<pre><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Courier New, Courier, mono" size="2">  <font color="#924B72">#PB_EventType_MouseEnter</font>      : Le curseur de la souris entre dans le canvas
  <font color="#924B72">#PB_EventType_MouseLeave</font>      : Le curseur de la souris quitte le canvas
  <font color="#924B72">#PB_EventType_MouseMove</font>       : Le curseur de la souris bouge
  <font color="#924B72">#PB_EventType_MouseWheel</font>      : La molette centale de la souris bouge (avec l'option</font></font></font></font></font><font face="Courier New,Courier" size="2"> </font><font face="Courier New,Courier" size="2" color="#924B72">#PB_Canvas_Keyboard </font><font face="Courier New,Courier" size="2">pour Windows uniquement)</font><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Courier New, Courier, mono" size="2">
  <font color="#924B72">#PB_EventType_LeftButtonDown</font>  : Bouton gauche pressé
  <font color="#924B72">#PB_EventType_LeftButtonUp</font>    : Bouton gauche relaché
  <font color="#924B72">#PB_EventType_LeftClick</font>       : Clic gauche
  <font color="#924B72">#PB_EventType_LeftDoubleClick</font> : Double-clic gauche
  <font color="#924B72">#PB_EventType_RightButtonDown</font> : Bouton droit pressé
  <font color="#924B72">#PB_EventType_RightButtonUp</font>   : Bouton droit relaché
  <font color="#924B72">#PB_EventType_RightClick</font>      : Clic droit
  <font color="#924B72">#PB_EventType_RightDoubleClick</font>: Double-clic droit
  <font color="#924B72">#PB_EventType_MiddleButtonDown</font>: Bouton central pressé
  <font color="#924B72">#PB_EventType_MiddleButtonUp</font>  : TBouton central relaché
  <font color="#924B72">#PB_EventType_Focus</font>           : Focus du clavier acquis
  <font color="#924B72">#PB_EventType_LostFocus</font>       : Focus du clavier perdu
  <font color="#924B72">#PB_EventType_KeyDown</font>         : Touche pressée (avec l'option</font></font></font></font></font><font face="Courier New,Courier" size="2"> </font><font face="Courier New,Courier" size="2" color="#924B72">#PB_Canvas_Keyboard</font><font face="Courier New,Courier" size="2">) </font><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Courier New, Courier, mono" size="2">
  <font color="#924B72">#PB_EventType_KeyUp</font>           : Touche relachée (avec l'option</font></font></font></font></font><font face="Courier New,Courier" size="2"> </font><font face="Courier New,Courier" size="2" color="#924B72">#PB_Canvas_Keyboard</font><font face="Courier New,Courier" size="2">)</font><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Courier New, Courier, mono" size="2">
  <font color="#924B72">#PB_EventType_Input</font>           : Un texte a été entré (avec l'option</font></font></font></font></font><font face="Courier New,Courier" size="2"> </font><font face="Courier New,Courier" size="2" color="#924B72">#PB_Canvas_Keyboard</font><font face="Courier New,Courier" size="2">)</font></pre>
<font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2">Les 
    évènements <font face="Courier New, Courier, mono" size="2"><font color="#924B72">#PB_EventType_LeftButtonUp, 
    #PB_EventType_RightButtonUp </font>et <font color="#924B72">#PB_EventType_MiddleButtonUp</font></font>
sont executés si le bouton a été préssé dans le canvas et relaché à l'exterieur 
    du canvas sauf pour  Mac OSX. Dans ce cas, une solution consiste en l'utilisation de 
    l'évènement 
&nbsp;<font color="#924B72">#PB_EventType_MouseLeave</font> en remplacement ou de 
    capturer la souris dans le gadget tant qu'un bouton reste pressé (</font></font></font></font><font face="Arial,Courier" size="2"><font size="2"><font size="2"><font size="2"><font color="#924B72">#PB_Canvas_ClipMouse</font></font></font></font></font><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2">). 


    </font></font></font></font><p>&nbsp;</p>
</blockquote>
<p style="margin-left:41;"><font face="Arial" size="2">Les commandes suivantes peuvent être utilisées:</font><blockquote>
    <p><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2">- 
    <a href="gadgettooltip.html">GadgetToolTip()</a>: Mini aide.<br>- <a href="canvasoutput.html">CanvasOutput()</a>: Dessine 
    sur le canvas de façon persistante (inutile d'utiliser l'évènement <font color="#924B72">#PB_Event_Repaint)</font>. 

<br>
- <a href="getgadgetattribute.html">GetGadgetAttribute()</a> avec les attributs 
    suivants: 
</font></font></font></font></p>
    <p><font face="Arial" size="2"><b>Souris:</b><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><br>
&nbsp;&nbsp;&nbsp;&nbsp;<font color="#924B72">#PB_Canvas_MouseX</font>, <font color="#924B72">#PB_Canvas_MouseY: 
    </font>Renvoie les coordonnées &nbsp;X et Y de la souris. 
        </font></font></font></font></p>
<font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font color="#924B72">&nbsp;&nbsp;&nbsp;&nbsp;#PB_Canvas_Buttons: 
    </font>Renvoie l'état des boutons de la souris: </font></font></font></font><font size="2" face="Arial">(1 = pressé, 0 = normal)</font><blockquote>

<pre><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Courier New, Courier, mono" size="2">  <font color="#924B72">#PB_Canvas_LeftButton</font>  : Bouton gauche.
  <font color="#924B72">#PB_Canvas_RightButton</font> : Bouton droit.
  <font color="#924B72">#PB_Canvas_MiddleButton</font>: Bouton du milieu.
</font></font></font></font></font></pre>
</blockquote>


    <p style="text-indent:-217; margin-left:217;"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font color="#924B72">&nbsp;&nbsp;&nbsp;&nbsp;#PB_Canvas_WheelDelta:</font> 
    Action de la molette centrale de la souris. Renvoie un nombre entier positif pour un mouvement vers le haut (éloignement)et négatif pour un mouvement vers le bas (rapprochement) sinon renvoie 0. 
        
    </font></font></font></font><p><font face="Arial" size="2"><b>Clavier:<br></b><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font color="#924B72">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#PB_Canvas_Modifiers: 
    </font>Renvoie l'état des touches de contrôle du clavier: </font></font></font></font><font size="2" face="Arial">(1 = pressé, 0 = normal)</font><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"> 
        </font></font></font></font></p>
<blockquote>

<pre><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Courier New, Courier, mono" size="2">  <font color="#924B72">#PB_Canvas_Shift</font>  : Touche 'Majuscule' ('shift').
  <font color="#924B72">#PB_Canvas_Alt</font>    : Touche 'alt'.
  <font color="#924B72">#PB_Canvas_Control</font>: Touche 'control'.
  <font color="#924B72">#PB_Canvas_Command</font>: Touche 'command' (ou "pomme"). (Mac OSX seulement)
</font></font></font></font></font></pre>
</blockquote>


    <p style="text-indent:-161; margin-left:161;"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font color="#924B72">&nbsp;&nbsp;&nbsp;&nbsp;#PB_Canvas_Key:</font> 
    Renvoie la touche pressée ou relachée lors des évènements <font color="#924B72">#PB_EventType_KeyDown</font> ou 
    &nbsp;<font color="#924B72">#PB_EventType_KeyUp</font>. 
La valeur retournée est une valeur <font color="#924B72">#PB_Shortcut_... </font>utilisée 
    avec la fonction &nbsp;<a href="../window/addkeyboardshortcut.html">AddKeyboardShortcut()</a>. Attention, 
    pour renvoyer un texte, il est préférable d'utiliser l'évènement &nbsp;<font color="#924B72">#PB_EventType_Input</font> avec 
    l'attribut <font color="#924B72">#PB_Canvas_Input</font> qui prend en compte 
    les touches de contrôle&nbsp;et 
    autres combinaisons de touches. 
        
    </font></font></font></font><p style="text-indent:-169; margin-left:169;"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font color="#924B72">&nbsp;&nbsp;&nbsp;&nbsp;#PB_Canvas_Input:</font> 
    Renvoie le code du caractère envoyé après l'évènement 
<font color="#924B72">#PB_EventType_Input</font>. Utiliser la fonction &nbsp;<a href="../string/chr.html">Chr()</a> pour 
    le transformer en string. 
        
    </font></font></font></font><p><font face="Arial" size="2"><b>Autre: 

</b><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><br>
&nbsp;&nbsp;&nbsp;&nbsp;<font color="#924B72">#PB_Canvas_Image:</font> 
    Renvoie un <a href="../image/imageid.html">ImageID</a> (permet d'utiliser 
    la fonction <a href="../2ddrawing/drawimage.html">DrawImage()</a>).<br> &nbsp;&nbsp;&nbsp;&nbsp;Attention 
    le&nbsp;redimensionnement et le dessin change l'<a href="../image/imageid.html">ImageID</a>.

    </font></font></font></font><p><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font color="#924B72">&nbsp;&nbsp;&nbsp;&nbsp;#PB_Canvas_Clip:</font> 
    Renvoie 0 si le clippage de la souris a échoué, non nulle sinon. 
        
    </font></font></font></font><p><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font color="#924B72">&nbsp;&nbsp;&nbsp;&nbsp;#PB_Canvas_Cursor:</font> 
    
    Renvoie le curseur courant ou -1 si le gadget utilise un curseur non standard.</font></font></font></font>
    <p><font face="Arial" size="2" color="#924B72">&nbsp;&nbsp;&nbsp;&nbsp;#PB_Canvas_CustomCursor: 
    
    </font><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2">Renvoie le 
    handle du cursor non standard ou 0 si le curseur est standard. 
        </font></font></font></font></p>
    <p>&nbsp;</p>
<font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2">- <a href="setgadgetattribute.html">SetGadgetAttribute()</a> avec 
    les attributs suivants: 

    </font></font></font></font><p style="text-indent:-179; margin-left:179;">
<font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#924B72">#PB_Canvas_Image:</font> 
    Attribut un <a href="../image/imageid.html">ImageID</a> </font></font></font>au 
    canvas<font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2">. Le gadget fait 
    une copie de l'image.<br>Utiliser <a href="../2ddrawing/startdrawing.html">StartDrawing()</a>, <a href="canvasoutput.html">CanvasOutput()</a> and <a href="../2ddrawing/drawimage.html">DrawImage()</a> pour 
    dessiner l'image sur le canvas.</font></font></font></font></p>
    <p style="text-indent:-161; margin-left:162;"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#924B72">#PB_Canvas_Clip:</font> Si 
    l'attribut est non nul, le curseur de la souris sera confiné au canvas. 0 
    enlève le confinement (clippage). 
Utiliser  
<font color="#924B72">#PB_Canvas_ClipMouse</font> pour ne pas piéger la souris 
    dans le canvas. 
        </font></font></font></font></p>
<font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font color="#924B72">&nbsp;&nbsp;&nbsp;&nbsp;#PB_Canvas_Cursor:</font> 
    Change le curseur quand la souris survole le canvas: 
        </font></font></font></font><blockquote>

<pre><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Courier New, Courier, mono" size="2">  <font color="#924B72">#PB_Cursor_Default</font>        : flèche par défaut
  <font color="#924B72">#PB_Cursor_Cross</font>          : croix
  <font color="#924B72">#PB_Cursor_IBeam</font>          : I (point d'insertion)
  <font color="#924B72">#PB_Cursor_Hand</font>           : main
  <font color="#924B72">#PB_Cursor_Busy</font>           : sablier ou montre
  <font color="#924B72">#PB_Cursor_Denied</font>         : interdit ou X 
  <font color="#924B72">#PB_Cursor_Arrows</font>         : flèche dans 4 directions (sauf Mac OSX)
  <font color="#924B72">#PB_Cursor_LeftRight</font>      : flèche gauche-droite
  <font color="#924B72">#PB_Cursor_UpDown</font>         : flèche haut-bas
  <font color="#924B72">#PB_Cursor_LeftUpRightDown</font>: flèche diagonale (Windows seulement)
  <font color="#924B72">#PB_Cursor_LeftDownRightUp</font>: flèche diagonale (Windows seulement))
  <font color="#924B72">#PB_Cursor_Invisible</font>      : invisible
</font></font></font></font></font></pre>
</blockquote>


    <p style="text-indent:3;"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font color="#924B72">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#PB_Canvas_CustomCursor:</font> 
    Utilisation d'un curseur non standard (personnalisé): 
        </font></font></font></font><blockquote>

<blockquote>

<font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2">Windows: un handle 
            HCURSOR  
<br>
Linux: un pointeur GtkCursor  
<br>
Mac OSX: un pointeur vers une structure Cursor  
            </font></font></font></font></blockquote>

</blockquote>


 

    &nbsp;</blockquote><p><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><b>Exemple</b></font></font></font></font></p><blockquote>

<pre><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Courier New, Courier, mono" size="2">  <b><font color="#006666">If</font></b> <font color="#006666">OpenWindow</font>(0, 0, 0, 220, 220, "CanvasGadget", <font color="#924B72">#PB_Window_SystemMenu</font> | <font color="#924B72">#PB_Window_ScreenCentered</font>)
<font color="#006666">    CanvasGadget</font>(0, 10, 10, 200, 200)
    
    <b><font color="#006666">Repeat</font></b>
      Event =<font color="#006666"> WaitWindowEvent</font>()
          
      <b><font color="#006666">If</font></b> Event = <font color="#924B72">#PB_Event_Gadget</font> <b><font color="#006666">And</font></b> <font color="#006666">EventGadget</font>() = 0 
        <b><font color="#006666">If</font></b> <font color="#006666">EventType</font>() = <font color="#924B72">#PB_EventType_LeftButtonDown</font> <b><font color="#006666">Or</font></b> (<font color="#006666">EventType</font>() = <font color="#924B72">#PB_EventType_MouseMove</font> <b><font color="#006666">And</font></b> <font color="#006666">GetGadgetAttribute</font>(0, <font color="#924B72">#PB_Canvas_Buttons</font>) & <font color="#924B72">#PB_Canvas_LeftButton</font>)
          <b><font color="#006666">If</font></b> <font color="#006666">StartDrawing</font>(<font color="#006666">CanvasOutput</font>(0))
            x =<font color="#006666"> GetGadgetAttribute</font>(0, <font color="#924B72">#PB_Canvas_MouseX</font>)
            y =<font color="#006666"> GetGadgetAttribute</font>(0, <font color="#924B72">#PB_Canvas_MouseY</font>)
<font color="#006666">            Circle</font>(x, y, 10,<font color="#006666"> RGB</font>(<font color="#006666">Random</font>(255),<font color="#006666"> Random</font>(255),<font color="#006666"> Random</font>(255)))
<font color="#006666">            StopDrawing</font>()
          <b><font color="#006666">EndIf</font></b>
        <b><font color="#006666">EndIf</font></b>
      <b><font color="#006666">EndIf</font></b>    
      
    <b><font color="#006666">Until</font></b> Event = <font color="#924B72">#PB_Event_CloseWindow</font>
  <b><font color="#006666">EndIf</font></b>

</font></font></font></font></font></pre>

<p><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><img src="../HelpPictures/canvasgadget.png"></font></font></font></font></p>

</blockquote><p><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><b>Exemple</b></font></font></font></font></p><blockquote>
<font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><a href="../Examples/CanvasGadget.pb.html">CanvasGadget.pb</a>


    </font></font></font></font></blockquote><p><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><b>Voir</b></font></font></font></font></p><blockquote>

<font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><a href="canvasoutput.html">CanvasOutput()</a>, <a href="getgadgetattribute.html">GetGadgetAttribute()</a>, <a href="setgadgetattribute.html">SetGadgetAttribute()</a>, <a href="../window/eventtype.html">EventType()</a>, <a href="../2ddrawing/startdrawing.html">StartDrawing()</a> 

    </font></font></font></font></Blockquote><p><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><b>OS Supportés </b></font></font></font></font><Blockquote><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2">Tous</font></font></font></font></Blockquote><center><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><font face="Arial" size="2"><-> <a href=calendargadget.html>CalendarGadget()</a> - <a href=index.html>Gadget Index</a> - <a href="canvasoutput.html">CanvasOutput()</a> ->

    </font></font></font></font></body></html>
-------------------------------------------------------------------------------------------------------------------------------------------

Le code html de "CanvasOutput.html"

Code : Tout sélectionner

<html><head><title>CanvasOutput</title><style type="text/css">
table.parameters { border-spacing: 0px; border-style: none; border-collapse: collapse; }
table.parameters td { border-width: 1px; padding: 6px; border-style: solid; border-color: gray; vertical-align: top; }
</style>
</head>
<body bgcolor="#FFFFDF" link="#009999" vlink="#006666" alink="#006666">
<p align="center"><font face="Arial" size="2"><b><font size="4">CanvasOutput()</font></font></b></p>
<p><font face="Arial" size="2"><b>Syntaxe</font></b></p><blockquote>
<font face="Arial" size="2">OutputID = <font color="#006666"><b>CanvasOutput</b></font>(#Gadget)</font></blockquote>

<p><font face="Arial" size="2"><b>Description</font></b></p>
<blockquote>

<font face="Arial" size="2">Renvoie le OutputID du  Canvas afin d'effectuer 
    des opération 2D. 

    </font></blockquote><p><font face="Arial" size="2"><b>Arguments</font></b></p>
<blockquote>
    <font face="Arial" size="2">#Gadget doit être un</font><i>  </i><a href="canvasgadget.html"><font face="Arial" size="2">CanvasGadget()</font></a>.
</blockquote>
<p><font face="Arial" size="2"><b>Valeur de retour</font></b></p><blockquote>

<font face="Arial" size="2">Renvoie un ouput ID ou 0 si le dessin n'est pas 
    possible. Cette valeur devrait être envoyée à 
<a href="../2ddrawing/startdrawing.html">StartDrawing()</a> pour initier l'opération 
    de dessin. Elle n'est valable que pour une seule opération de dessin (ne 
    peut être réutilisée). 

    </font></blockquote><p><font face="Arial" size="2"><b>Remarques</font></b></p><blockquote>

<font face="Arial" size="2">Le <a href="canvasgadget.html">CanvasGadget()</a> utilise 
    un  double buffer. Le dessin n'est rendu visible et sans scintillement qu'aptrès 
    la commande <a href="../2ddrawing/stopdrawing.html">StopDrawing()</a>. 

    </font></blockquote><p><font face="Arial" size="2"><b>Voir aussi</font></b></p><blockquote>

<font face="Arial" size="2"><a href="../2ddrawing/startdrawing.html">StartDrawing()</a>, <a href="canvasgadget.html">CanvasGadget()</a> 

    </font></Blockquote><p><font face="Arial" size="2"><b>OS Supportés </font></b><Blockquote><font face="Arial" size="2">Tous</font></Blockquote><center><font face="Arial" size="2"><-> <a href="canvasgadget.html">CanvasGadget()</a> - <a href=index.html>Gadget Index</a> - <a href=checkboxgadget.html>CheckBoxGadget()</a> ->

    </font></body></html>
Mesa.
Avatar de l’utilisateur
kernadec
Messages : 1594
Inscription : ven. 25/avr./2008 11:14

Re: Personnaliser l'aide de Purebasic

Message par kernadec »

bonjour Mesa
vraiment sympa, merci pour le partage
comme tu propose la version *.rar .
voilà : kernadec@hotmail.fr

merci beaucoup.

Cordialement
comtois
Messages : 5172
Inscription : mer. 21/janv./2004 17:48
Contact :

Re: Personnaliser l'aide de Purebasic

Message par comtois »

Pour mettre la doc à jour, il y a une autre méthode qui est pas mal aussi :P

http://www.purebasic.fr/french/viewtopi ... =4&t=10951

J'ai juste besoin du texte normal, pas du html.
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Avatar de l’utilisateur
GallyHC
Messages : 1703
Inscription : lun. 17/déc./2007 12:44

Re: Personnaliser l'aide de Purebasic

Message par GallyHC »

Bonjour,

Je trouve cela très fort (je parle pas du tuto :)), j'ai voulu télécharger htmlhelp.exe (chez microsoft) est le resultat IE me dit que c'est très dangereux lollll

Image

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Personnaliser l'aide de Purebasic

Message par Ar-S »

Jolie tuto et joli boulot !
Je veux bien ton rar aussi.


Merci ;)
Dernière modification par Ar-S le dim. 11/nov./2012 17:45, modifié 1 fois.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Personnaliser l'aide de Purebasic

Message par Kwai chang caine »

Oui merci beaucoup pour ce super TUTO 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Mesa
Messages : 1093
Inscription : mer. 14/sept./2011 16:59

Re: Personnaliser l'aide de Purebasic

Message par Mesa »

Merci bien à tous.

rar envoyés :D

===========================================
Le Texte de canvasgadget :
==================
CanvasGadget()

Syntaxe

Resultat = CanvasGadget(#Gadget, x, y, Largeur, Hauteur [, Options])


Description

Crée un canvas blanc par défaut dans la GadgetList en cours. Si #PB_Any est utilisé pour le paramètre '#Gadget', le numéro du nouveau gadget sera renvoyé dans 'Resultat'. #Gadget sera la valeur retournée par la fonction EventGadget(). x et y sont les coordonnées de la position du canvas dans la fenêtre. 'Largeur' et 'Hauteur' sont ses dimensions

Un canvas est une surface d'affichage et de dessin utilisant le clavier et la souris.

Le paramètre facultatif 'Options' peut être une combinaison des constantes suivantes:

#PB_Canvas_Border : Dessine une bordure autour du gadget.
#PB_Canvas_ClipMouse: Capture la souris tant qu'un bouton est appuyé.
#PB_Canvas_Keyboard : Capture les évènements et le focus du clavier.
#PB_Canvas_DrawFocus: Dessine un rectangle de focus.

Pour gérer le focus, il est aussi possible d'utiliser l'option #PB_Canvas_Keyboard avec les évènements #PB_EventType_Focus et #PB_EventType_LostFocus pour afficher une indication visuelle sur le gadget.

Les évènements sont :

#PB_EventType_MouseEnter : Le curseur de la souris entre dans le canvas
#PB_EventType_MouseLeave : Le curseur de la souris quitte le canva
#PB_EventType_MouseMove : Le curseur de la souris bouge
#PB_EventType_MouseWheel : La molette centale de la souris bouge (avec l'option #PB_Canvas_Keyboard pour Windows uniquement)
#PB_EventType_LeftButtonDown : Bouton gauche pressé
#PB_EventType_LeftButtonUp : Bouton gauche relaché
#PB_EventType_LeftClick : Clic gauche
#PB_EventType_LeftDoubleClick : Double-clic gauche
#PB_EventType_RightButtonDown : Bouton droit pressé
#PB_EventType_RightButtonUp : Bouton droit relaché
#PB_EventType_RightClick : Clic droit
#PB_EventType_RightDoubleClick: Double-clic droit
#PB_EventType_MiddleButtonDown: Bouton central pressé
#PB_EventType_MiddleButtonUp : TBouton central relaché
#PB_EventType_Focus : Focus du clavier acquis
#PB_EventType_LostFocus : Focus du clavier perdu
#PB_EventType_KeyDown : Touche pressée (avec l'option #PB_Canvas_Keyboard)
#PB_EventType_KeyUp : Touche relachée (avec l'option #PB_Canvas_Keyboard)
#PB_EventType_Input : Un texte a été entré (avec l'option #PB_Canvas_Keyboard)

Les évènements #PB_EventType_LeftButtonUp, #PB_EventType_RightButtonUp et #PB_EventType_MiddleButtonUp sont executés si le bouton a été préssé dans le canvas et relaché à l'exterieur du canvas sauf pour Mac OSX. Dans ce cas, une solution consiste en l'utilisation de l'évènement #PB_EventType_MouseLeave en remplacement ou de capturer la souris dans le gadget tant qu'un bouton reste pressé (#PB_Canvas_ClipMouse).



Les commandes suivantes peuvent être utilisées:

- GadgetToolTip(): Mini aide.
- CanvasOutput(): Dessine sur le canva de façon persistante (inutile d'utiliser l'évènement #PB_Event_Repaint).
- GetGadgetAttribute() avec les attributs suivants:

Souris:
#PB_Canvas_MouseX, #PB_Canvas_MouseY: Renvoie les coordonnées X et Y de la souris.
#PB_Canvas_Buttons: Renvoie l'état des boutons de la souris: (1 = pressé, 0 = normal)

#PB_Canvas_LeftButton : Bouton gauche.
#PB_Canvas_RightButton : Bouton droit.
#PB_Canvas_MiddleButton: Bouton du milieu.

#PB_Canvas_WheelDelta: Action de la molette centrale de la souris. Renvoie un nombre entier positif pour un mouvement vers le haut (éloignement)et négatif pour un mouvement vers le bas (rapprochement) sinon renvoie 0.

Clavier:
#PB_Canvas_Modifiers: Renvoie l'état des touches de contrôle du clavier: (1 = pressé, 0 = normal)

#PB_Canvas_Shift : Touche 'Majuscule' ('shift').
#PB_Canvas_Alt : Touche 'alt'.
#PB_Canvas_Control: Touche 'control'.
#PB_Canvas_Command: Touche 'command' (ou "pomme"). (Mac OSX seulement)

#PB_Canvas_Key: Renvoie la touche pressée ou relachée lors des évènements #PB_EventType_KeyDown ou #PB_EventType_KeyUp. La valeur retournée est une valeur #PB_Shortcut_... utilisée avec la fonction AddKeyboardShortcut(). Attention, pour renvoyer un texte, il est préférable d'utiliser l'évènement #PB_EventType_Input avec l'attribut #PB_Canvas_Input qui prend en compte les touches de contrôle et autres combinaisons de touches.

#PB_Canvas_Input: Renvoie le code du caractère envoyé après l'évènement #PB_EventType_Input. Utiliser la fonction Chr() pour le transformer en string.

Autre:
#PB_Canvas_Image: Renvoie un ImageID (permet d'utiliser la fonction DrawImage()).
Attention le redimensionnement et le dessin change l'ImageID.

#PB_Canvas_Clip: Renvoie 0 si le clippage de la souris a échoué, non nulle sinon.

#PB_Canvas_Cursor: Renvoie le curseur courant ou -1 si le gadget utilise un curseur non standard.

#PB_Canvas_CustomCursor: Renvoie le handle du cursor non standard ou 0 si le curseur est standard.


- SetGadgetAttribute() avec les attributs suivants:

#PB_Canvas_Image: Attribut un ImageID au canvas. Le gadget fait une copie de l'image.
Utiliser StartDrawing(), CanvasOutput() and DrawImage() pour dessiner l'image sur le canvas.

#PB_Canvas_Clip: Si l'attribut est non nul, le curseur de la souris sera confiné au canvas. 0 enlève le confinement (clippage). Utiliser #PB_Canvas_ClipMouse pour ne pas piéger la souris dans le canvas.
#PB_Canvas_Cursor: Change le curseur quand la souris survole le canvas:

#PB_Cursor_Default : flèche par défaut
#PB_Cursor_Cross : croix
#PB_Cursor_IBeam : I (point d'insertion)
#PB_Cursor_Hand : main
#PB_Cursor_Busy : sablier ou montre
#PB_Cursor_Denied : interdit ou X
#PB_Cursor_Arrows : flèche dans 4 directions (sauf Mac OSX)
#PB_Cursor_LeftRight : flèche gauche-droite
#PB_Cursor_UpDown : flèche haut-bas
#PB_Cursor_LeftUpRightDown: flèche diagonale (Windows seulement)
#PB_Cursor_LeftDownRightUp: flèche diagonale (Windows seulement))
#PB_Cursor_Invisible : invisible

#PB_Canvas_CustomCursor: Utilisation d'un curseur non standard (personnalisé):

Windows: un handle HCURSOR
Linux: un pointeur GtkCursor
Mac OSX: un pointeur vers une structure Cursor



Exemple

If OpenWindow(0, 0, 0, 220, 220, "CanvasGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CanvasGadget(0, 10, 10, 200, 200)

Repeat
Event = WaitWindowEvent()

If Event = #PB_Event_Gadget And EventGadget() = 0
If EventType() = #PB_EventType_LeftButtonDown Or (EventType() = #PB_EventType_MouseMove And GetGadgetAttribute(0, #PB_Canvas_Buttons) & #PB_Canvas_LeftButton)
If StartDrawing(CanvasOutput(0))
x = GetGadgetAttribute(0, #PB_Canvas_MouseX)
y = GetGadgetAttribute(0, #PB_Canvas_MouseY)
Circle(x, y, 10, RGB(Random(255), Random(255), Random(255)))
StopDrawing()
EndIf
EndIf
EndIf

Until Event = #PB_Event_CloseWindow
EndIf

Exemple

CanvasGadget.pb

Voir

CanvasOutput(), GetGadgetAttribute(), SetGadgetAttribute(), EventType(), StartDrawing()

OS Supportés

Tous

<-> CalendarGadget() - Gadget Index - CanvasOutput() ->

=========================================

Le texte de canvas output :
==================
CanvasOutput()

Syntaxe

OutputID = CanvasOutput(#Gadget)

Description

Renvoie le OutputID du Canvas afin d'effectuer des opération 2D.

Arguments

#Gadget doit être un CanvasGadget().

Valeur de retour

Renvoie un ouput ID ou 0 si le dessin n'est pas possible. Cette valeur devrait être envoyée à StartDrawing() pour initier l'opération de dessin. Elle n'est valable que pour une seule opération de dessin (ne peut être réutilisée).

Remarques

Le CanvasGadget() utilise un double buffer. Le dessin n'est rendu visible et sans scintillement qu'aptrès la commande StopDrawing().

Voir aussi

StartDrawing(), CanvasGadget()

OS Supportés

Tous

<-> CanvasGadget() - Gadget Index - CheckBoxGadget() ->

C'est bon pour toi comtois ?

Mesa.
comtois
Messages : 5172
Inscription : mer. 21/janv./2004 17:48
Contact :

Re: Personnaliser l'aide de Purebasic

Message par comtois »

C'est bon pour toi comtois ?
Je te dirai ça dès que j'ai un peu de courage pour me replonger dans la doc :)

En attendant merci.
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Personnaliser l'aide de Purebasic

Message par dayvid »

Super ce petit tuto :D

Merci du partage :wink:
Je veut bien le fichier moi aussi: Dieppedalle.david@yahoo.fr

Merci :)
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Personnaliser l'aide de Purebasic

Message par Backup »

Répondre