CREATION DE COMPOSANTS DELPHI
AJOUT DE PROPRIETES DANS LE COMPOSANT

dernière mise à jour le : samedi 29 janvier 2000

Retour au sommaire.
Chapitre précédent
Chapitre suivant

 

RECUPERATION DE L'EXEMPLE DU CHAPITRE PRECEDENT

Reprenez votre exemple de TEditVert décrit dans le chapitre précédent:

Pour le reprendre : allez dans le menu composant / installer des paquets puis sélectionnez la ligne 'composants utilisateur Borland' (ou 'composants utilisateur Delphi' selon les versions) (laisser la case cochée) puis cliquez sur le bouton Modifier puis double cliquez sur TEditVert. (En Delphi 2, il faut connaitre l'emplacement du fichier source et aller l'ouvrir).

Votre source doit apparaître à l'écran.

 

 

AJOUT D'UNE PROPRIETE

Dans cet exemple, nous allons ajouter une propriété Majuscule à notre composant. Cette propriété nous donnera la possibilité de demander à notre composant de mettre le texte en majuscule.

Majuscule est une propriété. Une propriété n'est pas une variable capable de stocker une donné.

Il nous faut donc

 

Ajout d'une variable capable de stocker la valeur que l'utilisateur affecte à notre propriété.

type
Tmajuscule=Integer;

private { Déclarations privées }

  FMajuscule:TMajuscule;

c'est cette variable FMajuscule qui sera chargée de stocker la valeur de la propriété majuscule.

Majuscule:=0;

 

 

Définir comment se comporte le composant lorsque l'on cherche à l'utiliser

published{ Déclarations publiées }

  property majuscule:TMajuscule read FMajuscule write SetMajuscule;

Cette ligne property est très importante: c'est elle qui dit à Delphi que Majuscule sera une propriété.
Elle s'inscrit dans la section published.

La section private doit maintenant ressembler à ceci :

private  
  { Déclarations privées }
FMajuscule:TMajuscule; // cette variable sera chargée de stocker la valeur de la propriété majuscule
Procedure SetMajuscule(Majuscule: TMajuscule); // pour le write
   

Il nous faut maintenant écrire la procédure SetMajuscule.
Dans la partie implementation ajoutez:

procedure TEditVert.SetMajuscule (Majuscule: TMajuscule);
begin

  FMajuscule:=Majuscule;

end;

Le source doit maintenant ressembler à : source

 

COMPILATION ET AJOUT DANS LA BARRE DES COMPOSANTS

Dans la fenêtre

Cliquez sur compiler. Cela suffit pour à la fois compiler et installer le composant. (En Delphi 2, pour compiler, il faut passer par composant/reconstruire librairie).

Vous pouvez le tester dans un nouveau projet ! :

Dès maintenant, dans l'inspecteur d'objets, vous voyez apparaître la propriété Majuscule :

Contrairement à l'image ci-dessus, Majuscule est à 0 car nous l'avons initialisée à 0 dans TEdit.Create

Pour l'instant, l'intéret d'avoir mis une procédure après le mot write au lieu d'une variable n'est pas évident.
Nous allons modifier le code pour pouvoir en bénéficier.

 

procedure TEditVert.SetMajuscule (Majuscule: TMajuscule);
begin

  {ici, on va rajouter du code servant à contrôler la validité de la valeur de Majuscule}
  FMajuscule:=Majuscule;
  {ici, on va rajouter du code servant à agir en fonction de la valeur de Majuscule}
  {par exemple en mettant en majuscule texte si majuscule=1}

end;

 

modifiez le code ainsi:

procedure TEditVert.SetMajuscule (Majuscule: TMajuscule);
begin

  if (Majuscule<-1) or (Majuscule >+1) then Majuscule:=0;
  FMajuscule:=Majuscule;
  if Majuscule=1 then Text:=AnsiUpperCase(Text);
  if Majuscule=-1 then Text:=AnsiLowerCase(Text);

end;

Le source doit maintenant ressembler à : source

 

Compilez comme précédemment puis intégrez votre composant dans un nouveau projet. Dans l'EDI, modifier la valeur de la propriété majuscule en la mettant à 1.

Le texte d'EditVert1 se modifie instantanément.

Notez que ceci c'est effectué non pas dans un programme compilé mais dans l'EDI !
En fait, ce qui est indiqué par read et write se déclenche dans votre programme compilé mais également dans l'EDI !


Retour au sommaire. Chapitre suivant.