bonjour,

j'ai crée dans mon application une classe F_Ajouter
dans le fichier F_Ajouter.cpp j'ai l'implementation des methodes :
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118

#include "F_Ajouter.h"
#include "article.h"

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <gtk/gtk.h>


****************************************

****************************************
void F_Ajouter::effacerFAjouter()
{
   gtk_entry_set_text(GTK_ENTRY(entry[0]),"");
   gtk_entry_set_text(GTK_ENTRY(entry[1]),"");               
}

****************************************

****************************************

F_Ajouter::F_Ajouter()
{
   /****** creation de la fenetre ********/
   windowAjouter=gtk_window_new(GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title(GTK_WINDOW(windowAjouter),"Nouveau Article"); 
   gtk_window_set_default_size(GTK_WINDOW(windowAjouter),500,300);
   gtk_window_set_position(GTK_WINDOW(windowAjouter),GTK_WIN_POS_CENTER);
   Layout=gtk_layout_new(NULL,NULL);
   gtk_container_add(GTK_CONTAINER(windowAjouter), GTK_WIDGET(Layout));
   gtk_window_set_modal(GTK_WINDOW(windowAjouter),TRUE);
                             
   /*Couleur bleu pale du layout*/
   GdkColor color;
   color.pixel = 0;
   color.red=60500;
   color.green=62001;
   color.blue=63504;
   gtk_widget_modify_bg(GTK_WIDGET(Layout), GTK_STATE_NORMAL, &color);
                  
   // creation, personnalisation et positionnement des labels
	      
   Label[0]=gtk_label_new("");
   Label[1]=gtk_label_new("");
   Label[2]=gtk_label_new("");
   Label[3]=gtk_label_new("");
   gtk_label_set_markup(GTK_LABEL(Label[0]), "<span font_desc=\"Times New Roman italic 20\"foreground=\"#0000FF\"><b><i>Ajouter Article</i></b></span>\n");
   gtk_label_set_markup(GTK_LABEL(Label[1]), "<span font_desc=\"Times New Roman 12\"><u><i>Code Article</i></u></span>\n");
   gtk_label_set_markup(GTK_LABEL(Label[2]), "<span font_desc=\"Times New Roman 12\"><u><i>Prix Article</i></u></span>\n");
   gtk_label_set_markup(GTK_LABEL(Label[3]), "<span font_desc=\"Times New Roman 12\"><u><i>Libelle Article</i></u></span>\n");
   gtk_layout_put (GTK_LAYOUT(Layout),Label[0],200,10);
   gtk_layout_put (GTK_LAYOUT(Layout),Label[1],70,100);
   gtk_layout_put (GTK_LAYOUT(Layout),Label[2],70,140);
   gtk_layout_put (GTK_LAYOUT(Layout),Label[3],70,180);
         
   // creation, et positionnement des buttons
          
   button[0]=gtk_button_new_with_label("Valider");
   button[1]=gtk_button_new_with_label(" Effacer ");
   button[2]=gtk_button_new_with_label(" Annuler ");
   gtk_layout_put (GTK_LAYOUT(Layout),button[0],70,240);
   gtk_layout_put (GTK_LAYOUT(Layout),button[1],180,240);
   gtk_layout_put (GTK_LAYOUT(Layout),button[2],290,240); 
   gtk_widget_set_size_request(button[0],80,-1);
   gtk_widget_set_size_request(button[1],80,-1);
   gtk_widget_set_size_request(button[2],80,-1);
   // g_signal_connect(G_OBJECT(button[2]), "activate", G_CALLBACK(~F_Ajouter),NULL);
*****************************************

****************************************
   g_signal_connect(G_OBJECT(button[1]), "clicked", G_CALLBACK(effacerFAjouter),NULL);

****************************************

****************************************
            
   // création & positionnement des zones de de saisies 
   entry[0]=gtk_entry_new();
   entry[1]=gtk_entry_new();
   entry[2]=gtk_entry_new();
   gtk_layout_put (GTK_LAYOUT(Layout),entry[0],200,100);
   gtk_layout_put (GTK_LAYOUT(Layout),entry[1],200,140);
   gtk_layout_put (GTK_LAYOUT(Layout),entry[2],200,180);
   gtk_widget_set_size_request(entry[0],80,-1);
   gtk_widget_set_size_request(entry[1],80,-1);
   gtk_widget_set_size_request(entry[2],200,-1);
   gtk_entry_set_max_length(GTK_ENTRY(entry[0]),6);
   gtk_entry_set_max_length(GTK_ENTRY(entry[1]),12);

}
F_Ajouter::~F_Ajouter()
{
   gtk_widget_destroy(windowAjouter);
}
void F_Ajouter::afficherFAjouter()
{
   gtk_widget_show_all(windowAjouter);                         
}

void F_Ajouter::validerFAjouter(Article article)
{
   const gchar * identifiant, *prix,*libelle;
   identifiant=gtk_entry_get_text(GTK_ENTRY(entry[0]));
   prix=gtk_entry_get_text(GTK_ENTRY(entry[1]));
   libelle=gtk_entry_get_text(GTK_ENTRY(entry[2]));
   article.setIdentifiant((long int)identifiant);
   double d_prix=atof(prix);  // CONVERSION DE TYPE GCHAR TO DOUBLE
   article.setPrix(d_prix);
   libelle=new char[strlen(article.getLibelle())+1];
   article.setLibelle((char *)libelle);
   Article * art;  
   art=new Article();
   art->ajouter_article(article);
   
}
dans la ligne de gestion de signal signalé en rouge la fonction de rappel est la fonction $$$$ effacerFAjouter $$$$$ fonction membre de la classe,
mais le compilateur me signal une erreur ??????
l'erreur est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
63 C:\Documents and Settings\pc\Bureau\Mts System\F_Ajouter.cpp argument of type `void (F_Ajouter::)()' does not match `void (*)()'
merci de me signaler la source d'erreur, et si je fait this.effacerFAjouter comme fonction de rappel il affiche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
63 C:\Documents and Settings\pc\Bureau\Mts System\F_Ajouter.cpp expected primary-expression before ')' token 
63 C:\Documents and Settings\pc\Bureau\Mts System\F_Ajouter.cpp `effacerFAjouter' is not a type 
63 C:\Documents and Settings\pc\Bureau\Mts System\F_Ajouter.cpp request for member of non-aggregate type before ')' token
merci