dernière mise à jour le : dimanche 04 mars 2001
Retour au sommaire.
Chapitre précédent
Chapitre suivant
Dans un TForm, si on clique sur la croix à gauche de la propriété Font,
d'autres propriétés s'affichent :

Dans l'exemple ci-dessus, TForm est une Class dont une des propriétés est une Class (TFont) qui possède elle même des propriétés (Charset, Color...). A noter que TFont possède une propriété Style qui elle même possède des propriétés...
Créez un nouveau composant qui hérite par exemple d'un TBitBtn (Composants / Nouveau composant...)
On va modifier le source ainsi créé par Delphi pour que ce
composant fasse apparaître, dans l'inspecteur d'objet, deux
"sous propriétés" :
x et y

Pour cela :
unit BitBtn1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons;
//déclaration de la class TTest
type
TTest =class(TPersistent)
private
Fx: integer;
Fy: string;
procedure Setx(const Value: integer);
procedure Sety(const Value: string);
{ Déclarations privées }
protected
{ Déclarations protégées }
public
{ Déclarations publiques }
published
property x :integer read Fx write Setx;
property y:string read Fy write Sety;
end;
TBitBtn1 = class(TBitBtn)
private
Ftest: TTest;
procedure Settest(const Value: TTest);
{ Déclarations privées }
protected
{ Déclarations protégées }
public
//surcharge du create
constructor Create(AOwner: TComponent); override;
published
//ajout de la propriété de type TTEST
property test :TTest read Ftest write Settest;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Perso', [TBitBtn1]);
end;
{ TBitBtn1 }
constructor TBitBtn1.Create(AOwner: TComponent);
begin
inherited;
//attention ne pas oublier le create de la propriété test
test:=TTest.create;
test.x:=0;
end;
procedure TBitBtn1.Settest(const Value: TTest);
begin
Ftest := Value;
end;
{ TTest }
procedure TTest.Setx(const Value: integer);
begin
Fx := Value;
end;
procedure TTest.Sety(const Value: string);
begin
Fy := Value;
end;
end.
Retour au sommaire.
Chapitre suivant