Stéphane Sibué

 

Référence Librairie CodePPC

Retour à la librairie CodePPC

Retour à l'index des références

Espace de Nom CodePPC.Controls

Control SignControl

 

A quoi sert le contrôle SignControl ?

SignControl est un contrôle visuel qui prend en charge la saisie et la restitution de signatures, fonction très souvent nécessaire dans un développement sous Windows Mobile.

Philosophie de ce contrôle


SignControl sur Pocket PC

La philosophie de SignControl est d'être le plus simple possible à mettre en oeuvre. Pour ce faire, SignControl se présente sous la forme d'une zone de saisie au stylet (ou à la souris) qui mémorise tous les mouvements de l'utilisateur. Il mémorise en temps réel tous les vecteurs définissant une signature. Les informations concernant la signature (la somme des vecteurs) peut être extrait du contrôle sous la forme d'une chaîne de caractères. Cette chaîne, qu'il est alors très simple d'enregistrer dans un champs texte d'une base de données, est très simple à manipuler.

Une version pour PC (disponible gratuitement sur le site de notre partenaire Antéïs à cette adresse) fonctionne exactement de la même manière ce qui permet par exemple de saisir une signature sur Pocket PC, de la transférer coté PC (par synchro, base de données, Socket, etc...) pour ensuite la restituer à l'identique coté PC etl'imprimer par exemple. L'espace de nom du contrôle PC est Anteis.Controls.SignControl.


SignControl sur PC

 

Utilisation

J'ai créé un programme d'exemple qui met en oeuvre le contrôle SignControl ce qui vous permettra de bien comprendre son fonctionnement. Cet exemple est téléchargeable ici, il est écrit en VB.NET mais sa conversion en C# ne devrait poser absolument aucun problème.

Déclaration de la variable représentant le contrôle dans la fenêtre

Création du contrôle

Dans la méthode New() de la fenêtre ajouter la création du contrôle. Cette partie de code créé le contrôle, le positionne, l'ajoute à la fenêtre et initialise sa propriété Text :

Exemple 1 : Enregistrement de la signature dans une variable buffer

Note : Dans cet exemple, BufferSignature est une variable de type String.

If Signature.IsEmpty Then
    MsgBox("Contrôle signature vide, rien à copier !")
Else
    BufferSignature = Signature.SaveToString
End If

Exemple 2: Enregistrement de la signature dans un fichier

Try
Signature.SaveToFile("\My Documents\CodePPC.dat")
Catch ex As Exception
Dim m As String = String.Format("Impossible d'enregister la signature dans le fichier. {0}", ex.Message)
MsgBox(m)
End Try

Exemple 3: Lecture de la signature depuis une variable de type String

If BufferSignature = "" Then
MsgBox("Rien à coller.")
Else
Signature.LoadFromString(BufferSignature)
End If

Exemple 4: Lecture de la signature depuis un fichier

Try
Signature.LoadFromFile("\My Documents\CodePPC.dat")
Catch ex As Exception
Dim m As String = String.Format("Impossible de charger la signature depuis le fichier. {0}", ex.Message)
MsgBox(m)
End Try

Les méthodes et propriétés propres à ce contrôle

SignControl possède toutes les méthodes et propriétés d'un contrôle classique afin de le positionner, lui donner une taille, le rendre visible ou non, et possède aussi une série de méthodes et propriétés qui lui sont propres et dont voici le détail :

Public Sub Clear()

Cette méthode efface le contrôle et sa mémoire interne. Si une signature était déjà mémorisée elle est oubliée.


Public Sub Draw(ByVal g As System.Drawing.Graphics)

Cette méthode dessine la signature dans un contexte graphique passé en paramètre. Ceci permet de dessiner dans un bitmap par exemple.

Exemple : On dessine la signature contenue dans le contrôle "Signature" dans un nouveau bitmap

REM Création d'un bitmap de 150x150 pixels
Dim wBitmap As New Bitmap(150,150)

REM Récupération du contexte graphic du bitmap
Dim g as Graphics = Graphics.FromImage(wBitmap)

REM On replit le bitmap avec du blanc
g.Clear(New Pen(Color.White))

REM On écrit la signature dans le bitmap
Signature.Draw(g)

REM Libération du contexte graphique du bitmap
g.Dispose


Public Sub LoadFromFile(ByVal path As String, Optional ByVal wDraw As Boolean = True)

Cette méthode charge dans la mémoire du contrôle une signature depuis un fichier. Il est possible d'empêcher le dessin de la signature après le chargement en plaçant le paramètre "wDraw" à False.

Si le fichier ne contient pas une signature valide, une erreur est remontée.

Exemple : Chargement d'une signature depuis le fichier "\My Documents\Signature.dat"

Signature.LoadFromFile("\My Documents\Signature.dat")

Public Sub LoadFromString(ByVal wString As String, Optional ByVal wDraw As Boolean = True)

Cette méthode charge dans la mémoire du contrôle une signature depuis une variable de type String. Il est possible d'empêcher le dessin de la signature après le chargement en plaçant le paramètre "wDraw" à False.

Si la chaîne ne contient pas une signature valide, une erreur est remontée.

Exemple : Chargement d'une signature depuis la variable wBuffer de type String

Signature.LoadFromString(wBuffer)

Public Sub SaveToFile(ByVal path As String)

Cette méthode enregistre une signature dans le fichier dont le chemin est donné en paramètre.

Exemple : Enregistrement de la signature dans le fichier "\My Documents\Signature.dat"

Signature.SaveToFile("\My Documents\Signature.dat")

Public Function SaveToString() As String

Cette fonction retourne une chaîne contenant la signature mémorisée.

Exemple : Stockage dans la variable "wBuffer" de type String de la signature

wBuffer = Signature.SaveToString()

Public Property Animate() As Boolean

Cette propriété détermine la manière de dessiner la signature. Si elle est vraie (True) la signature est rendue par un tracé proche de celui d'une personne, comme si l'ordinateur signait lui même. Le rendu est plutôt sympa.

Par défaut cette propriété est fausse (False).


Public Property Border() As System.Windows.Forms.BorderStyle

Cette propriété permet de tracer ou non un bord noir autour du contrôle.


Public Property Font() As System.Drawing.Font
Cette propriété permet de choisir la fonte qui sera utilisée pour afficher le texte de la signature (contenu de la propriété Text). Ce texte permet par exemple d'écrire dans le contrôle la mention "Veuillez signer dans ce cadre".

Public ReadOnly Property IsEmpty() As Boolean

Cette propriété retourne faux (False) si une signature se trouve dans la mémoire et vrai (True) si la mémoire du contrôle est vide. Ceci permet de savoir si la signature a bien été saisie ou non.


Public Property Text() As String

Cette propriété permet de définir le texte qui est affiché dans le cadre du contrôle pour inviter, par exemple, l'utilisateur à signer dans le cadre.


Public Property ForeColor() As System.Drawing.Color

Cette propriété permet de choisir la couleur de la signature. Par défaut la signature est noire.

Exemple : Choix de la couleur rouge comme couleur de rendu de la signature

Signature.Forecolor = Color.Red

 

En cas de problème, utilisez le forum consacré à la librairie CodePPC pour poser vos questions et faire vos remarques.

Stéphane Sibué




Développez pour Windows Mobile
Copyright 2001-2005 - Tous droits réservés
Toutes les marques et produits présents dans ces pages sont la propriété exclusive de leurs sociétés respectives.