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.hbuttonz.cpp
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); }; #endifunit1.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); }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'
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); }
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?
Partager