LIBRAIRIE DE CLASSE POUR GTK+

Signaler
Messages postés
48
Date d'inscription
dimanche 9 mai 2004
Statut
Membre
Dernière intervention
1 janvier 2005
-
psykocrash
Messages postés
244
Date d'inscription
vendredi 14 juin 2002
Statut
Membre
Dernière intervention
17 mars 2009
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/28550-librairie-de-classe-pour-gtk

psykocrash
Messages postés
244
Date d'inscription
vendredi 14 juin 2002
Statut
Membre
Dernière intervention
17 mars 2009

Voici la réponse à ton problème s'il n'est pas déjà résolu :

void Crystal::Init(void)
{
gtk_init(NULL, NULL);
}
Funto66
Messages postés
1267
Date d'inscription
mercredi 1 janvier 2003
Statut
Membre
Dernière intervention
28 février 2007
3
Ouais c'est pas plus mal comme ça, mais dans ce cas faut adapter main.cpp pour que ça reflète cette procédure :)
cs_Light Angel
Messages postés
48
Date d'inscription
dimanche 9 mai 2004
Statut
Membre
Dernière intervention
1 janvier 2005

Bein justement, le delete, c'est pas obligatoire, en haut, au lieu de déclarer :

Form *frmMain;
Button *cmdExit;

On déclare :

Form frmMain("Main");
Button cmdExit("Quitter");

Et on ne s'enmerde pas, si jamais une fonction nécéssite un pointeur vers un Crystal ou vers un dérivé de Crystal, on s'enmerde pas, on passe &lobjet en argument ... Les pointeurs, on est pas obligé de les mettre, c'est même mieu de pas les mettres, mais j'en avais besoin pour les tests ...
Funto66
Messages postés
1267
Date d'inscription
mercredi 1 janvier 2003
Statut
Membre
Dernière intervention
28 février 2007
3
Ouais ben en fait comme je t'ai dit j'ai réglé le pb en implémentant la fonction Close() mais j'ai mis dedans :
gtk_widget_destroy(this->Widget);

Par contre cette histoire de "delete" c'est pas super (même pas super du tout du tout); il doit y avoir moyen de faire comme avec wxWidgets, c'est à dire de faire en sorte que ce soit la librairie, et non le programmeur qui l'utilise, qui détruise les objets alloués (ne serait-ce que dans la fonction Crystal::Exit()...).
cs_Light Angel
Messages postés
48
Date d'inscription
dimanche 9 mai 2004
Statut
Membre
Dernière intervention
1 janvier 2005

voila ce qui devrai normalement être dans la fonction Close :

void Form::Close(void)
{
gtk_widget_destroy(this->Object());
}

PS : les WARNINGS dans DevC++, je ne suis pas au courant, je n'est pas testé. Quoi qu'il en soit, sous VC++, ya pas de Warnings.

PS2 : Je vien de remarquer une autre erreur dans le fichier Main.cpp, faut pas oublier de détruire cmdExit

void *cmdExit_OnClick(GtkWidget *, void *)
{
...
delete cmdExit;
...
}