begin process at 2012 05 29 04:54:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

Fonction incluse dans une autre


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Fonction incluse dans une autre

mercredi 14 mai 2003 à 12:09:43 | Fonction incluse dans une autre

MLine

Slut,
est-il possible d'imbriquer une fonction dans une autre ??
Voilà ce que je voudrais faire : je crée une fiche dynamiquement dans la méthode ci-dessous et je lui ajoute des composants (Button11 et ComboBox1) et je voudrais définir la méthode Button11Click dans cette méthode (comme c'est écrit ci-dessous...) pour pouvoir accéder à FormH et ComboBox1 (sinon, si je définis Button11Click hors de cette méthode, je ne peux plus y accéder). Mais ça ne compile pas de cette façon...

Alors y-a-t-il moyen de corriger, ou alors faut-il carrément faire autrement ? Dans ce cas, comment accéder aux composants FormH et ComboBox1 hors de la méthode Button3Click ?


(extrait)

void __fastcall TForm1::Button3Click(TObject *Sender)
{
unsigned int Winh = 300, Winl = 300;

TForm *FormH = new TForm(Form1); /*create a new form dynamically to choose the file to edit*/
FormH->Width=Winl; /*set the height and width of the child window*/
FormH->Height=Winh;
FormH->Visible=true; //display the child window
FormH->Align=alNone;
FormH->OnClose=FormCloseW;

TComboBox *ComboBox1 = new TComboBox (FormH);
ComboBox1->Parent = FormH;
ComboBox1->Style = csDropDownList;

TButton *Button11 = new TButton (FormH);
Button11->OnClick = Button11Click(TObject *Sender)
{
filetoedit = ComboBox1->Text;
ShellExecute(NULL, // Handle de la fenêtre parent
"open", // Action à effectuer
"notepad.exe", // Fichier
filetoedit.c_str(), // Paramètres
"", // Répertoire par défaut
SW_SHOWDEFAULT // Manière d'afficher
);
FormH->Close();
}
Button11->Parent = FormH;
Button11->Caption = "OK" ;
Button11->Left = 50;
Button11->Top = 50;

//ETC.....
}
mercredi 14 mai 2003 à 23:06:58 | Re : Fonction incluse dans une autre

bouba

Hum, oui, tu peux définir une fonction dans une autre mais en tout comme tu fé ça va pas du tout!

tu ne peux pas faire ça !!!!!!!

Button11->OnClick = Button11Click(TObject *Sender)
{
filetoedit = ComboBox1->Text;
ShellExecute(NULL, // Handle de la fenêtre parent
"open", // Action à effectuer
"notepad.exe", // Fichier
filetoedit.c_str(), // Paramètres
"", // Répertoire par défaut
SW_SHOWDEFAULT // Manière d'afficher
);
FormH->Close();
}

il vaut mieux que tu définisses ta fonction en dehors et en passant comme paramêtre en référence le ComboBox1 et le FormH.

Button11Click(TypeDeComboBox1 & a, TypeDeFormH & b)
{
filetoedit = a->Text;
ShellExecute(NULL, // Handle de la fenêtre parent
"open", // Action à effectuer
"notepad.exe", // Fichier
filetoedit.c_str(), // Paramètres
"", // Répertoire par défaut
SW_SHOWDEFAULT // Manière d'afficher
);
b->Close();
}

ensuite tu fé

Button11->OnClick = Button11Click(ComboBox1, Form1);

PAr contre je ne vois pas a quoi sert Sender!!!!
al", a+.
Bouba
-------------------------------
Réponse au message :
-------------------------------

> Slut,
> est-il possible d'imbriquer une fonction dans une autre ??
> Voilà ce que je voudrais faire : je crée une fiche dynamiquement dans la méthode ci-dessous et je lui ajoute des composants (Button11 et ComboBox1) et je voudrais définir la méthode Button11Click dans cette méthode (comme c'est écrit ci-dessous...) pour pouvoir accéder à FormH et ComboBox1 (sinon, si je définis Button11Click hors de cette méthode, je ne peux plus y accéder). Mais ça ne compile pas de cette façon...
>
> Alors y-a-t-il moyen de corriger, ou alors faut-il carrément faire autrement ? Dans ce cas, comment accéder aux composants FormH et ComboBox1 hors de la méthode Button3Click ?
>
>
> (extrait)
>
> void __fastcall TForm1::Button3Click(TObject *Sender)
> {
> unsigned int Winh = 300, Winl = 300;
>
> TForm *FormH = new TForm(Form1); /*create a new form dynamically to choose the file to edit*/
> FormH->Width=Winl; /*set the height and width of the child window*/
> FormH->Height=Winh;
> FormH->Visible=true; //display the child window
> FormH->Align=alNone;
> FormH->OnClose=FormCloseW;
>
> TComboBox *ComboBox1 = new TComboBox (FormH);
> ComboBox1->Parent = FormH;
> ComboBox1->Style = csDropDownList;
>
> TButton *Button11 = new TButton (FormH);
> Button11->OnClick = Button11Click(TObject *Sender)
> {
> filetoedit = ComboBox1->Text;
> ShellExecute(NULL, // Handle de la fenêtre parent
> "open", // Action à effectuer
> "notepad.exe", // Fichier
> filetoedit.c_str(), // Paramètres
> "", // Répertoire par défaut
> SW_SHOWDEFAULT // Manière d'afficher
> );
> FormH->Close();
> }
> Button11->Parent = FormH;
> Button11->Caption = "OK" ;
> Button11->Left = 50;
> Button11->Top = 50;
>
> //ETC.....
> }
jeudi 15 mai 2003 à 09:56:07 | Re : Fonction incluse dans une autre

MLine

En fait le prototype avec le Sender :
void _fastcall TForm1::Button11Click (TObject *Sender)
est créé automatiquement par C++ Builder. J'ai testé ce que tu as dit, avec la fonction :
void Button11Click2 (TComboBox &a, TForm &b)
Mais cela ne fonctionne pas car C++ Builder attend obligatoirement un prototype du premier type pour l'événement OnClick.
Et j'ai essayé d'utiliser la fonction ci-dessus en fonction puis en méthode de Form1 (fiche principale) -> ça revient au même.
Donc j'ai finalement mis FormH et ComboBox1 en attributs de la classe TForm1, ce qui fait que j'ai abandonné l'allocation dynamique :'[
Merci (ton idée me semblait bonne mais bon, on dirait bien que C++ Builder n'est pas commode :/)
MLine

-------------------------------
Réponse au message :
-------------------------------

> Hum, oui, tu peux définir une fonction dans une autre mais en tout comme tu fé ça va pas du tout!
>
> tu ne peux pas faire ça !!!!!!!
>
> Button11->OnClick = Button11Click(TObject *Sender)
> {
> filetoedit = ComboBox1->Text;
> ShellExecute(NULL, // Handle de la fenêtre parent
> "open", // Action à effectuer
> "notepad.exe", // Fichier
> filetoedit.c_str(), // Paramètres
> "", // Répertoire par défaut
> SW_SHOWDEFAULT // Manière d'afficher
> );
> FormH->Close();
> }
>
> il vaut mieux que tu définisses ta fonction en dehors et en passant comme paramêtre en référence le ComboBox1 et le FormH.
>
> Button11Click(TypeDeComboBox1 & a, TypeDeFormH & b)
> {
> filetoedit = a->Text;
> ShellExecute(NULL, // Handle de la fenêtre parent
> "open", // Action à effectuer
> "notepad.exe", // Fichier
> filetoedit.c_str(), // Paramètres
> "", // Répertoire par défaut
> SW_SHOWDEFAULT // Manière d'afficher
> );
> b->Close();
> }
>
> ensuite tu fé
>
> Button11->OnClick = Button11Click(ComboBox1, Form1);
>
> PAr contre je ne vois pas a quoi sert Sender!!!!
> al", a+.
> Bouba
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Slut,
> > est-il possible d'imbriquer une fonction dans une autre ??
> > Voilà ce que je voudrais faire : je crée une fiche dynamiquement dans la méthode ci-dessous et je lui ajoute des composants (Button11 et ComboBox1) et je voudrais définir la méthode Button11Click dans cette méthode (comme c'est écrit ci-dessous...) pour pouvoir accéder à FormH et ComboBox1 (sinon, si je définis Button11Click hors de cette méthode, je ne peux plus y accéder). Mais ça ne compile pas de cette façon...
> >
> > Alors y-a-t-il moyen de corriger, ou alors faut-il carrément faire autrement ? Dans ce cas, comment accéder aux composants FormH et ComboBox1 hors de la méthode Button3Click ?
> >
> >
> > (extrait)
> >
> > void __fastcall TForm1::Button3Click(TObject *Sender)
> > {
> > unsigned int Winh = 300, Winl = 300;
> >
> > TForm *FormH = new TForm(Form1); /*create a new form dynamically to choose the file to edit*/
> > FormH->Width=Winl; /*set the height and width of the child window*/
> > FormH->Height=Winh;
> > FormH->Visible=true; //display the child window
> > FormH->Align=alNone;
> > FormH->OnClose=FormCloseW;
> >
> > TComboBox *ComboBox1 = new TComboBox (FormH);
> > ComboBox1->Parent = FormH;
> > ComboBox1->Style = csDropDownList;
> >
> > TButton *Button11 = new TButton (FormH);
> > Button11->OnClick = Button11Click(TObject *Sender)
> > {
> > filetoedit = ComboBox1->Text;
> > ShellExecute(NULL, // Handle de la fenêtre parent
> > "open", // Action à effectuer
> > "notepad.exe", // Fichier
> > filetoedit.c_str(), // Paramètres
> > "", // Répertoire par défaut
> > SW_SHOWDEFAULT // Manière d'afficher
> > );
> > FormH->Close();
> > }
> > Button11->Parent = FormH;
> > Button11->Caption = "OK" ;
> > Button11->Left = 50;
> > Button11->Top = 50;
> >
> > //ETC.....
> > }
>


Cette discussion est classée dans : fonction, méthode, combobox1, formh, button11


Répondre à ce message

Sujets en rapport avec ce message

méthode [ par tomtom187 ] Bonjour, Je développe actuellement une interface graphique avec dev-C++ et la bibliothèque FLTK sous Windows. Dans celle-ci, j'ai intégré une partie c problème de passage de fonctions via dll [ par youppyy ] Bonjour, J'ai deux fonctions sont enregistrées dans une dll ecrite en langage C sur Dec-c++ : J'ai une fonction A qui renvoie une donnée et une fonct Pb de compilateur ?? il ne genere pas le code ASM des parametres de ma fonction [ par darkpoulpo ] salut, voila mon soucis, j'ai une fonction déclarée comme tel : HRESULT WINAPI absent(char *code,CONST RECT* pSourceRect,CONST RECT* pDestRect){ Programmer printf [ par jeanphilippe37 ] [u]Bonjour[/u], Je dois faire en TD un programme pour re programmer printf en langage C. Je n'ai aucune idée de comment faire. Je sais juste me servi fonction rand() [ par flowneo ] Bonjour, voila, je voudrais faire une fonction (ou procédure) qui génére par exemple 4 lettre que je placerais dans un tableau, j'ai regardé les réfé Fonction virtuelle en C [ par cogno ] Bonjour les amis, ma question est la suivante: Comment simuler une fonction virtuelle en C ? Merci Algorithme le plus rapide [ par cogno ] Bonjour les amis, je cherche l'algorithme le plus rapide en C++ pour obtenir de la fonction suivante inline int fonction (char* a) { } les résult Template ou virtuel [ par cogno ] Bonjour les amis, supposons un pointeur sur un Objet A, et fct une fonction membre de l'objet. quelle est la différence fondamentale entre: 1/ La c [API WIN32] Création nouveau contrôle [ par HumbuckerSingleCoil ] Bonjour. Je voudrais savoir comment on crée un nouveau contrôle avec l'api WIN32. Je m'explique : je voudrais réaliser un éditeur html, css, javascr


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales