begin process at 2012 05 28 12:24:16
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Ajout Menu dans un PopupMenu


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

Ajout Menu dans un PopupMenu

vendredi 13 août 2004 à 12:21:03 | Ajout Menu dans un PopupMenu

larion

Bonjour,
Dans mon programme je crée plusieurs menus dans un popupmenu avec ce code :
Code:
NewItems[p] = new TMenuItem(PopupMenu1);
NewItems[p]->Caption = "&Option";
NewItems[p]->OnClick = FonctionOption;
PopupMenu1->Items->Add(NewItems[p++]);

NewItems[p] = new TMenuItem(PopupMenu1);
NewItems[p]->Caption = "&Restaure";
NewItems[p]->OnClick = FonctionRestaure;
PopupMenu1->Items->Add(NewItems[p++]);

...

Cela fonctionne bien.
A présent, je désire le faire par l'intermediaire d'une fonction créée par mes soins, du genre :
Code:
AddMenu("&Option",FonctionOption);

void __fastcall TForm1::AddMenu(char * texte,??? fonction)
{ NewItems[p] = new TMenuItem(PopupMenu1);
NewItems[p]->Caption = texte;
NewItems[p]->OnClick = fonction;
PopupMenu1->Items->Add(NewItems[p++]);
}

Pour le premier paramètre "char * texte", pas de problème,
mais pour le second "??? fonction", je n'y arrive pas. Avez-vous une solution ?
vendredi 13 août 2004 à 15:28:26 | Re : Ajout Menu dans un PopupMenu

magic_Nono

Membre Club
utilise un ptr de fonctions
cf ts les tut sur ce site et sur ceux du net


Magic Nono: l'informagicien!
vendredi 13 août 2004 à 15:34:57 | Re : Ajout Menu dans un PopupMenu

magic_Nono

Membre Club
exemple (de tete)

si tu as des fonction avec ces proto

int maxList(Liste l);
int minList(Liste l);

tu peux avoir une fonction ainsi
void critere(char* txt,int(*ptrFonc)(Liste l))
{
..
Liste l2;
...
int premier = (*ptrFonc)(l2);
..
}


bon, C de mem; en fait, C ptet :
void critere(char* txt,int(ptrFonc*)(Liste l))


teste

Magic Nono: l'informagicien!
vendredi 13 août 2004 à 16:38:53 | Re : Ajout Menu dans un PopupMenu

larion

Merci, je n'y avais pas pensé.
Cela devrait fonctionné pour transmettre la fonction en paramètre en utilisant ce prototype :

typedef int (*PtrFonct)(Liste l);

J'espère que je n'aurais pas de problème .
Je teste cela ce soir.
samedi 14 août 2004 à 01:09:24 | Re : Ajout Menu dans un PopupMenu

larion

C'est trop compliqué pour moi. J'ai plusieurs erreurs à la compilation :

typedef void __fastcall (*PtrFonct)(TObject *Sender); // Déclaration de pointeur de fonction

void __fastcall TForm1::FonctionOption(TObject *Sender) // La fonction à pointer
{ ... }

void __fastcall TForm1::AddMenu(char * texte,PtrFonct fonction)
{ NewItems[p] = new TMenuItem(PopupMenu1);
NewItems[p]->Caption = texte;
NewItems[p]->OnClick = &fonction;
//Erreur de conversion
PopupMenu1->Items->Add(NewItems[p++]);
}


AddMenu("&Option", FonctionOption); //Erreur, vois AddMenu(char *,void)
dimanche 15 août 2004 à 12:51:53 | Re : Ajout Menu dans un PopupMenu

larion

J'ai trouvé, et ce n?était pas facile :
Code:
void __fastcall TForm1::AddMenu(char * texte,Classes::TNotifyEvent fonction)
{ NewItems[p] = new TMenuItem(PopupMenu1);
NewItems[p]->Caption = texte;
NewItems[p]->OnClick = fonction;
PopupMenu1->Items->Add(NewItems[p++]);
}

AddMenu("&Option",&FonctionOption);


Cette discussion est classée dans : fonction, code, popupmenu, newitems, popupmenu1


Répondre à ce message

Sujets en rapport avec ce message

getch() sous Linux [ par yapud ] Bonjour,J'ai un probleme avec la fonction gecth() se trouvant danc la librairie CURSES.H sous LINUX !J'utilise cette meme fonction sous WINDOWS qui ma Fonction return dans une console windows [ par Jolfulorc ] Bonjour,Lorsque j'affiche un texte dans une console windows (code du genre : coutla façon que j'ai trouvé pour contourner cet inconvénient Timers haute précision [ par SMarmotte ] Bonjour à tousJe cherche à attendre EXACTEMENT 60 micro secondes.J'ai fait cette routine mais elle me bouffe 50% du temps CPU du fait que je dois l'ap Problème de code en c++ (fonction itoa) [ par mimyne ] voila g le code suivant:void Resultat_Clicked(Object* pSender, EventArgs* pArgs){ int operation = 5; char* chaine[2]; if (pSender == Btnres) { { ito Nombre aléatoire en C [ par FoLKeN91 ] Bonjour tout le monde.Alors voici mon probleme, j'ai beau cherché je n'arrive pas à le résoudre. Je désire faire une fonction qui renvoie un nombre al la fonction "afficher le source" de internet explorer [ par zip8000 ] Bonjour,je cherche a reproduire le resultat de la fonction "afficher la source" qui ouvre le code html d'une page internet. Mon but est de recuperer c convertir une chaine de caracatères en hexadécimal [ par vinc524 ] salut all !voilà je voulais savoir s'il existe une fonction pour convertir une chaine de caractètes provenat du port série RS232 récupéré par la métho Fonction find du STL [ par saturne_1606 ] Bonjour a tous!Voila mon prob:g un exo1.h comme suit:#include #include class personne{ protected : s pointer vers un tableau 2d [ par Adeon ] salut ! je suis en train de creer une fonction qui doit inclure un tableau 2d dont on ne connait pas les valeurs.si je fais :void fonction(char *tab){ code source de log10 (x) [ par laurentrupin ] Bonjour,Dans le cadre d'une application embarquée, j'ai besoin de la fonction log10 (x) mais je ne peux pas utiliser la fonction de math.h car dans ce


Nos sponsors


Sondage...

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 : 1,513 sec (3)

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