C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

petit probleme

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French)
View previous topic :: View next topic  
Author Message
3dsman
Guest





PostPosted: Wed Feb 16, 2005 11:38 pm    Post subject: petit probleme Reply with quote



salut!

je suis face a un probleme et j'espere que vous pourrez me mettre sur
une piste pour le résoudre:

je travaille a une interface en opengl ou j'ai des fenetres contenant
des boutons, des listes deroulantes,...
je ne transmet aux fenetres les infos de deplacement de la souris que
quand elle les survole et c'est la fenetre qui se charge de transmetre
aux boutons.
Mais dans certains cas (liste deroulantes par ex) ces boutons peuvent
sortir temporairement (lors d'un choix dans une liste deroulante par
ex) de la fenetre et dans ces cas la ils ne recoivent plus ces
informations de deplacement de la souris.

Mon idée a été de court-circuiter la fenetre lors d'actions speciales
comme celle la (mon bouton met sont pointeur dans une variable globale
et la remet a NULL des que l'operation est terminee). les infos de
deplacement de la souris ne sont envoyées alors qu'a mon bouton.

Sauf que la je perd la possibilité pour la fenetre de savoir si un
bouton a été cliqué

donc pour resumer j'ai un objet A qui crée un objet B.
comment l'objet B peut il executer une fonction de l'objet A?

question subsidiaire: est ce que ce systeme est crade et comment faire
plus propre?

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com

Back to top
Fabien LE LEZ
Guest





PostPosted: Wed Feb 16, 2005 11:47 pm    Post subject: Re: petit probleme Reply with quote



On Thu, 17 Feb 2005 00:38:02 +0100, 3dsman <3dsman (AT) free (DOT) fr>:

Quote:
donc pour resumer j'ai un objet A qui crée un objet B.
comment l'objet B peut il executer une fonction de l'objet A?

Il faut passer (généralement dans le constructeur de B) un pointeur
(ou une référence) vers l'objet A créateur.

class A;

class B
{
public:
B (A& createur_);

void f();

private:
A& createur;
};

class A
{
public: void g();
};


B::B (A& createur_)
: createur (createur_)
{}

void B::f()
{
createur.g();
}



--
;-)

Back to top
3dsman
Guest





PostPosted: Thu Feb 17, 2005 7:37 am    Post subject: Re: petit probleme Reply with quote



Fabien LE LEZ a couché sur son écran :
Quote:
On Thu, 17 Feb 2005 00:38:02 +0100, 3dsman <3dsman (AT) free (DOT) fr>:

donc pour resumer j'ai un objet A qui crée un objet B.
comment l'objet B peut il executer une fonction de l'objet A?

Il faut passer (généralement dans le constructeur de B) un pointeur
(ou une référence) vers l'objet A créateur.

j'avais penssé a ca mais c'est pas trop crade? ca se fait courament en
c++?

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com


Back to top
Olivier Azeau
Guest





PostPosted: Thu Feb 17, 2005 9:13 am    Post subject: Re: petit probleme Reply with quote


Fabien LE LEZ wrote:
Quote:
On Thu, 17 Feb 2005 00:38:02 +0100, 3dsman <3dsman (AT) free (DOT) fr>:

donc pour resumer j'ai un objet A qui crée un objet B.
comment l'objet B peut il executer une fonction de l'objet A?

Il faut passer (généralement dans le constructeur de B) un pointeur
(ou une référence) vers l'objet A créateur.

class A;

class B
{
public:
B (A& createur_);

void f();

private:
A& createur;
};

C'est pas un peu dangereux une référence comme attribut ?
Par exemple si j'ai 2 objets B qui n'ont pas le meme créateur et que
j'utilise B::operator= ?


Back to top
kanze@gabi-soft.fr
Guest





PostPosted: Thu Feb 17, 2005 11:54 am    Post subject: Re: petit probleme Reply with quote

Olivier Azeau wrote:
Quote:
Fabien LE LEZ wrote:
On Thu, 17 Feb 2005 00:38:02 +0100, 3dsman <3dsman (AT) free (DOT) fr>:

donc pour resumer j'ai un objet A qui crée un objet B.
comment l'objet B peut il executer une fonction de l'objet
A?

Il faut passer (généralement dans le constructeur de B) un
pointeur (ou une référence) vers l'objet A créateur.

class A;

class B
{
public:
B (A& createur_);

void f();

private:
A& createur;
};

C'est pas un peu dangereux une référence comme attribut ? Par
exemple si j'ai 2 objets B qui n'ont pas le meme créateur et
que j'utilise B::operator= ?

Évidemment, il faut définir ce qu'on entend par l'affectation,
et implémenter un opérateur d'affectation en conséquence. En
l'occurance, ici, l'objet B était un bouton dans une GUI. J'ai
du mal à imaginer qu'il supporte l'affectation ; il y a sans
doute un operator= déclaré privé, et sans implémentation.

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34


Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.