Bonjour!

Je veux faire un programme qui lit plusieurs codes (>120) d´un fichier texte (avec un TStringList), et puis, affiche les codes sur des TButtons. Le nombre de codes et alors de Boutons doit être variable. Quand les boutons sont cliqué, les codes doivent etre passé a un fonction qui est declare dans l'application principale.

Alors j'essaye de faire un classe TBouton, qui consiste d'un TButton et son ButtonClick evenement. Mais je n´ai pas beaucoup d´experience sur les objects dynamique.

Voici mon code:


buttonz.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
#ifndef boutonH
#define boutonH
 
 
class TBouton {
  public:
    TBouton(String zin);
    TButton *but;
    void __fastcall ButtonClick(TObject *Sender);
};
 
#endif
buttonz.cpp
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
#include <StdCtrls.hpp>
#include "buttonz.h"
#include "DynButUnit.cpp"
 
 
TBouton::TBouton(String nom)
{
  this->but = new TButton((void *)MainForm);
  this->but->Caption = nom;
}
 
 
void __fastcall TBouton::ButtonClick(TObject *Sender)
{
     MainForm->Fonction(this->but->Caption);
}
unit1.cpp
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
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
#include "buttonz.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TMainForm *MainForm;
TBouton *Bouton[20];
 
//---------------------------------------------------------------------------
__fastcall TMainForm::TMainForm(TComponent* Owner)
        : TForm(Owner)
{
  for (int i=0;   i<19; i++)  {
    Bouton[i] = new TBouton("Jaap");
    Bouton[i]->but->Top = i*30;
    Bouton[i]->but->Parent = MainForm;
  }
}
//---------------------------------------------------------------------------
 
__fastcall TMainForm::Fonction(String zin)
{
  Memo1->Lines->Add(zin);
}
Pour voir si ca marche Le fonction (MainForm->Fonction) affiche son parametre (les codes) sur un Memo. Il est declare dans unit1.h comme 'public'

Problablement, ce code est plein d'erreurs, car quand je compile le programme, ca donne plusieurs warnings. Mais on peut executer et on voit les boutons. Mais quand je clique les bouton, rien se passe.

Qui peut m'aider?