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:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
procedure tform5.clicktitre(sender:tobject);
  begin
    form4.showmodal;
  end;
j'ai une erreur qui me dit :

[dcc32 Erreur] Unit5.pas(108): E2070 Directive inconnue : 'tform5'


merci de vos réponse.