Est ce que je peut ajouter une propriete comme la propriete Tag dans un composant ?
par example je veux ajouter une propriete sag :integer avec le composant TLabel....
est ce que c'est possible ?
d'avance
Est ce que je peut ajouter une propriete comme la propriete Tag dans un composant ?
par example je veux ajouter une propriete sag :integer avec le composant TLabel....
est ce que c'est possible ?
d'avance
Gio,
Il faut faire une classe dérivée.![]()
Tu peux aussi faire un 'array du type voulu' créée en parallèle du composant, lequel serait repérable via le tag du composant:avec le nombre de composants tu fait un setlenth sur l' 'array du type voulu' et quand tu crée un composant tu fait une incrémentation d'un integer, assigné au tag, question de pouvoir s'y retrouver dans l'histoire.
Bon c'est pas très pro mais ca marcherait.![]()
par exemple:
rq:au lieu de mettre parent:=form1 dans le constructeur, tu le mets dans le formcreate...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,stdctrls; type TSaglabel=class(Tlabel) private s:integer; public property sag:integer read s write s; constructor create(owner:Tcomponent);override; end; type TForm1 = class(TForm) procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); private { Déclarations privées } monlabel:Tsaglabel; public { Déclarations publiques } end; var Form1: TForm1; implementation {$R *.dfm} constructor TSaglabel.create(owner:Tcomponent); begin inherited; parent:=form1; // faire quelque chose avec s.... end; procedure TForm1.FormCreate(Sender: TObject); begin monlabel:=Tsaglabel.create(form1); monlabel.sag:=4; // tu affectes 4 à sag par exemple monlabel.Caption:='monlabel'; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin monlabel.Free; end; end.
monlabel.parent:=form1;
comme ça, avec tu peux utiliser ton nouvel objet plus librement.
![]()
Je ne vois pas pourquoi tu ne pourrais pas...
un chien peut devenir un chat en delphi ( c'est un monde où tout est possible ou presque)
Pour une paintbox ou un panel par exemple, tu dois mettre extctrls dans uses.
voilà
![]()
Partager