• Aucun résultat trouvé

I : Composant 3DLabelNous allons étudier un composant très simple, une étiquette texte en relief. Pour cela, nous allons créer un composant VCL Label3D

N/A
N/A
Protected

Academic year: 2022

Partager "I : Composant 3DLabelNous allons étudier un composant très simple, une étiquette texte en relief. Pour cela, nous allons créer un composant VCL Label3D"

Copied!
2
0
0

Texte intégral

(1)

Département Informatique TP07 : Création de composant VCL Page 1/2 Lors de ce TP, nous allons étudier comment créer des composants VCL, utilisables sous Borland Developper Studio 2006. L'étude serait similaire pour des composants d'un autre système de developpement (par exemple MS .NET)

Attention : bien finir le TP (faire le IV) avant de quitter la salle.

I : Composant 3DLabel

Nous allons étudier un composant très simple, une étiquette texte en relief. Pour cela, nous allons créer un composant VCL Label3D qui reprendra les caractéristiques d'un TLabel mais en ajoutant une notion de relief (en fait un simple ombrage).

Ouvrez le Borland Developper Studio. Choisir « Nouveau Package ».Faire ensuite un nouveau composant. Choisir TLabel comme ancêtre. Choisir TLabel3D comme nom de classe, IUT comme nom de palette, prendre un chemin local comme nom d'unité. Faites de même pour le nom du package.

L'EDI vous donne alors un squelette de fichiers source pour le composant (un fichier cpp et un fichier h). Les fonctions déjà écrites sont essentielles et ne doivent pas être effacées.

Dans le fichier d'en-tête (.h) nous allons créer une nouvelle propriété pour ce composant : la couleur de l'ombre. Pour cela, il faut une variable privée (par exemple couleur_ombre) de type

TColor. Ensuite, dans la section __published, il faut une propriété pour accéder à cette variable :

__property TColor Ombre =

{read=couleur_ombre,write=couleur_ombre};

De même, il nous faut un entier pour choisir le décalage en pixels entre le texte « normal » et son ombre.

Il faut ensuite définir comment le Label3D est affiché. Pour cela, il faut redéfinir la méthode Paint qui s'occupe de « dessiner » le contrôle.

void __fastcall Paint ();

Construire le package. S'il n'y a aucune erreur (ni warning, faites bien attention), installez-le.

Vérifiez le fonctionnement du composant. Remarquez qu'une modification des paramètres ajoutés (ombre, décalage) ne ré-actualise pas l'affichage. Ecrire une fonction « set » qui modifie la couleur de l'ombre et met à jour l'affichage :

void __fastcall TLabel3D::SetOmbre(TColor omb) { couleur_ombre = omb;

Invalidate();

}

Faites tester le fonctionnement du composant dans une application fenêtres VCL.

(2)

Département Informatique TP07 : Création de composant VCL Page 2/2

II : Composant TClock

Nous allons à présent écrire un composant qui représente une horloge. Nous partirons pour cela d'un TCustomLabel (une classe identique à TLabel mais avec des propriétés non publiées) et nous lui ajouterons un composant TTimer pour « compter » le temps. Ce « timer » sera interne et ne doit pas être visible à l'utilisateur du composant. Il doit avoir une fréquence de rafraichissement de moins d'une seconde.

Pour lire l'heure du système, il suffit d'appeler la méthode TDateTime::CurrentTime() et de la convertir en chaîne par sa méthode FormatString() (voir l'aide VCL pour + de détails).

L'utilisateur doit pouvoir activer ou non l'horloge, et aussi régler la police de caractères.

Ecrire ce composant. Installez-le.

Faites tester à l'enseignant.

III : Composant TAlarm

Nous allons à présent créer un autre composant, qui réalisera la fonction d'horloge (il héritera donc du précédent) mais qui, en outre, lancera une alarme (un évenement OnAlarme...)

Pour cela, nous allons ajouter une propriété Alarme, de type AnsiString, qui devra contenir une alarme sous la forme HH:MM:SS.

Il faut également ajouter une propriété de type evennement (TNotifyEvent) qui renvoie à un attribut qui est en fait un pointeur de fonctions.

Modifier le code de manière à, si l'heure de l'alarme est atteinte, déclencher l'évennement (mais une seule fois).

Faites vérifier à l'enseignant.

IV : Fin du TP

Afin de laisser la machine dans un état propre, il faut déinstaller votre package.

Sous Developper Studio, faites tout fermer, puis projet, options par défaut, C++ Builder, packages, et « retirer » votre paquet.

Quittez proprement l'EDI avant de fermer votre session.

Références

Documents relatifs

Les cartes mères qui incluent un contrôleur de ce type sont rares et nettement plus coûteuses. L'avantage à avoir un contrôleur SCSI intégré plutôt qu'une carte SCSI PCI

La résistance électrique R AB entre deux points d’un circuit A et B , est le rapport entre la différence de potentiel U AB qui apparaît entre les points A et B du circuit

La tension maximum Umax (V) applicable aux bornes de C sans risque disruptif : Umax = Ed.e. Remarque : la tension de service Us (V) portée sur le condensateur est

Elle dépend du matériau du noyau et du champ magnétique B (T) Remarque :  dépend aussi de la température et de la fréquence.. Classement de certains matériaux à

Pour ce faire, nous ajoutons un composant DEFINE STATUS dans le diagramme, nous plaçons CRIME RATE en TARGET, et toutes les autres variables en INPUT!.

le composant Client manipule sa liaison avec le composant Server : il implémente l'interface BindingController dénie dans l'API Fractal. la classe ServerImpl implémente le

Toxique pour les organismes aquatiques, entraîne des effets néfastes à long terme.. Provoque des brûlures de la peau et de graves lésions

Un composant TDataSource permet de faire le lien entre une table ou une requête et des composants.. Département Informatique Page 2/2 d'affichage/édition