IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)



Comment créer des fichiers d'aide avec Borland C++ Builder ?
auteur : Geronimo
Consultez ici la rubrique traitant de ce sujet dans les conseils et exemples de Gilles Louise. Sachez qu'il est également possible de créer des fichiers d'aide au format HTMLHelp. Il faut dans ce cas télécharger HTML Help Workshop sur le site de Microsoft .

Comment avertir l'utilisateur ?
auteur : Geronimo
Il est souvent utile d'avertir l'utilisateur par un message rapide, pour lui faire part d'une information ou pour lui signaler une erreur. Il existe différentes méthodes. Les plus simples et les plus utiles sont ShowMessage et MessageDlg . ShowMessage permet d'afficher un message tout simple dans une fenêtre :
ShowMessage("Tâche effectuée");
La fonction ShowMessage prend pour argument un AnsiString qui est le contenu du message. L'autre méthode, plus perfectionnée, est MessageDlg. Cette fonction permet de personnaliser un peu la boite de dialogue :
MessageDlg("La tâche a été effectuée correctement", mtInformation, TMsgDlgButtons()  mbOK, 0);
Cette fonction permet d'afficher un message (AnsiString passée en premier argument). Le second argument indique le type de boite de dialogue. mtInformation affiche une icône "information" dans la boite de dialogue. Enfin, l'avant-dernier argument permet de choisir quels boutons seront disponibles dans la boite de dialogue. Le dernier argument permet de lier la boite de dialogue à une rubrique d'aide. Un des grands avantages de cette fonction est qu'elle permet de savoir quel bouton a été enfoncé s'il y en avait plusieurs :
if (MessageDlg("Le document n'a pas été sauvegardé, voulez-vous le sauvegarder avant de quitter ?", 
     mtConfirmation, TMsgDlgButtons()  mbYes  mbNo, 0) == mrYes)
    Sauver();
Dans ce code, la fonction Sauver est appellée si le bouton Oui est cliqué. Pour plus de détails sur le fonctionnement de MessageDlg, consultez l'aide de C++Builder.

On notera donc la possibilité d'utiliser les deux fonctions ShowMessage et MessageDlg, la seconde étant utile pour tester les boutons appuyés.

Comment afficher les bulles d'aide (hint) ?
auteur : Geronimo
Un Hint est une petite bulle qui s'affiche lorsque l'utilisateur laisse le curseur pendant un certain temps au-dessus d'un contrôle. Dans cette bulle, il est possible de donner plus d'informations sur le contrôle. Les informations placées dans le Hint ne doivent pas être trop longues : il faut que l'utilisateur puisse les lire très rapidement. Cependant, elles ne doivent pas faire doublure avec le nom du bouton. Si vous avez un bouton Connecter dans un client FTP, évitez de placer dans le hint Se connecter ; placez plutôt : Connexion au serveur FTP . Pour que les bulles d'aide apparaissent dans une fiche, positionnez la propriété ShowHint de celle-ci à true . Pour que les hints apparaissent dans toute l'application, placez le code suivant dans le constructeur de votre fiche principale :
Application->ShowHint = true;
Ne négligez pas les bulles d'aide, c'est la première aide de l'utilisateur et une bonne aide ne les remplacent pas. (quand vous cherchez un composant dans la palette, ne vous êtes-vous jamais aidé des bulles d'aide ?)

Comment changer la couleur des bulles d'aide ?
auteur : Geronimo
Utilisez le code suivant dans le constructeur de la fiche principale :
Application->HintColor = clBlue;
ou bien pour avoir des couleurs plus personnalisées, utilisez le code hexadécimal
Application->HintColor = 0x00CCD9E1; // Couleur sable
Pour le code hexadécimal, les trois premiers octets (de droite à gauche) représentent les couleur Rouge, Vert et Bleu. Ainsi, 0x00FF0000 correspondra à un bleu intense, 0x0000FF00 à un vert intense et enfin 0x000000FF à un rouge intense. L'octet de poids fort (les deux premiers 0 de gauche) concerne les palettes de couleurs (cf l'aide de C++ Builder sur TColor).

Comment afficher les hints dans la barre de status ?
auteur : Geronimo
Pour afficher un texte dans la barre de status, il y a deux solutions. La première est extrêmement simple à mettre en oeuvre mais ne donne pas autant de liberté que la seconde : Placez une barre de status dans votre fiche. Positionnez sa propriété AutoHint à true . La barre de status affichera les hints de chaque composant ou menu lorsqu'ils seront sélectionnés. Cet affichage se fera soit dans le premier Panel de la barre de status, soit dans le SimplePanel , si cette option est activée. Si vous souhaitez afficher ce hint dans une autre partie de la barre de status, il faut écrire le gestionnaire d'événement correspondant. Dans le fichier en-tête de votre fiche principale (Unit1.h), dans la classe TForm1, déclarez la fonction suivante qui sera le gestionnaire d'événement :
void __fastcall AfficherConseil(TObject *Sender);
Implémentez ensuite la fonction. Elle affichera dans le Panel de la barre de status le hint en cours de l'application :
void __fastcall TForm1::AfficherConseil(TObject *Sender)
{
   // Attention, vous devez avoir au moins deux Panels dans votre barre d'état
   StatusBar1->Panels->Items[1]->Text = Application->Hint;
}
Vous pouvez bien sur remplacer ce code si vous souhaitez que le hint s'affiche autre part (mais la barre de status existe dans ce but). Enfin, dans le constructeur de votre fiche, nous attribuons cette fonction comme gestionnaire de l'événement OnHint de l'application :
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
   Application->OnHint = AfficherConseil;
}