pointeur this - c++ builder
bonjour,
je développe une appli qui permet de lire les animations falsh avec flash.ocx...
je voudrai déclarer une variable de type TShockwaveFlash pour qu'elle soit accéssible depuis tout mon projet.
Code:
TShockwaveFlash *flash = new TShockwaveFlash(this);
si je met cette déclaration dans une fontion, ça fonctionne, mais je ne peux pas accéder à la variable flash depuis les autres fonctions.
si je la met hors d'une fonction, pour la rendre accéssible à tout le projet, j'ai une erreur qui me dit :
" 'this' ne peut être utilisé que dans une fonction membre "
comment puis-je faire ?
merci d'avance
Re: pointeur this - c++ builder
Citation:
Envoyé par mathieu57
bonjour,
je développe une appli qui permet de lire les animations falsh avec flash.ocx...
je voudrai déclarer une variable de type TShockwaveFlash pour qu'elle soit accéssible depuis tout mon projet.
Code:
TShockwaveFlash *flash = new TShockwaveFlash(this);
si je met cette déclaration dans une fontion, ça fonctionne, mais je ne peux pas accéder à la variable flash depuis les autres fonctions.
si je la met hors d'une fonction, pour la rendre accéssible à tout le projet, j'ai une erreur qui me dit :
" 'this' ne peut être utilisé que dans une fonction membre "
comment puis-je faire ?
merci d'avance
this est un opréateur qui renvoi un pointeur vers l'instance courante de la classe.
Tu ne peux pas utiliser "this" dans le domaine globale.
Apparement ta classe TShockwaveFlash nécéssite un pointeur vers un objet déjà exitant de type que tu ne nous dis pas. Il nous en faudrait plus.
Tu peux faire comme ça si tu veux, mais tu pourrai éviter et chercher une meilleur solution:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
[zone_globale]
TShockwaveFlash *flash = NULL;
[/zone_globale]
[methode_initialisateur]
flash = new TShockwaveFlash(this);
[/methode_initialisateur]
[fct_ou_tu_vx_utiliser]
if( flash != NULL )
// ok
else
// pas encore initialisé
[/fct_ou_tu_vx_utiliser] |
ou mieux encore:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
class TaClassContenant
{
private:
TShockwaveFlash *flash;
public:
TShockwaveFlash *GetShockwaveFlash()
{
return flash;
}
};
[fct_quelconque]
TaClasseContenant A;
TShockwaveFlash *flash = A.GetShockwaveFlash();
[/fct_quelconque]
Il y a une multitude de possibilités mais tout dépend de ce que tu as besoin |