Bonjour,
Je crée des tlabel dynamiquement selon les enregistrements de ma bdd et le problème est que je veux affecter un événement onClick à chaque label. Je me suis documenté sur google et j'ai trouvé qu'il faut ajouter l'événement dans la déclaration publique mais ça ne marche pas. Voici mon code :
jai declarer la procedure dans la classe de la forme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 type TForm5 = class(TForm) ComboBox1: TComboBox; ADOTable1: TADOTable; DataSource1: TDataSource; ADOQuery1: TADOQuery; DataSource2: TDataSource; ADOTable2: TADOTable; procedure FormCreate(Sender: TObject); procedure ComboBox1Change(Sender: TObject); Procedure clicktitre (Sender: TObject);{mon evenement onclick}
et la création des composants dynamiquement avec l'événement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 xx:=85 ; for i:=1 to self.ADOTable1.RecordCount do begin with tlabel.Create(self)do begin parent:=self; caption:=self.ADOTable1.FieldValues['titre'] ; top:=xx; left:=32; onclick:=pclicktitre ;{l'evenement} end; self.ADOTable1.Next; xx:=xx+10; end;
et quand j'utilise la procédure comme suit:
j'ai une erreur qui me dit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 procedure tform5.clicktitre(sender:tobject); begin form4.showmodal; end;
[dcc32 Erreur] Unit5.pas(108): E2070 Directive inconnue : 'tform5'
merci de vos réponse.
Partager