IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

wxWidgets Discussion :

comment etendre la portee d'un objet?


Sujet :

wxWidgets

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 5
    Par défaut comment etendre la portee d'un objet?
    bonjour a tous.. je viens de m'inscrire mais je tiens a vous remercier en meme temps pour l'aide que vous m'avez deja apportée par le contenu de de ce site.

    je debute en programmation sur linux et j'ai choisi C++ et wxwidget
    avec dialogblocks.

    j'essaye de traiter des images et mon probleme est le suivant:

    je defini ma page principale et j'insere mon wxStaticBitmap dans wxBoxSizer,wxScrolledWindow.. enfin c'est dialogblocks qui s'en charge.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    wxStaticBitmap* itemStaticBitmap14 = new wxStaticBitmap( itemScrolledWindow12, wxID_STATIC, itemFrame1->GetBitmapResource(wxT("resultat2.jpg")), wxDefaultPosition, wxSize(1346, 914), 0 );
        itemBoxSizer13->Add(itemStaticBitmap14, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
    je souhaite ensuite rafraichir cette zone image avec SetBitmap lorsque mon application a traité l'image. tout ceci fonctionne bien dans la zone de scope c'est a dire dans la zone ou le wxStaticbitmap a ete defini.

    mon probleme vient du fait que je n'arrive pas a etendre la portee du itemStaticBitmat14

    merci par avance de votre aide

  2. #2
    Membre Expert
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Par défaut
    Bonjour,

    Si j'ai bien compris ton problème, je pense qu'il faut changer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    itemBoxSizer13->Add(itemStaticBitmap14, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
    En

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    itemBoxSizer13->Add(itemStaticBitmap14, 1, wxEXPAND|wxALL, 5);
    Cela permet d'étendre en X et Y ton wxBitmap via le sizer.

    Pas besoin de donner une taille au wxBitmap, qui va s'adapter suivant la taille de la dialog.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 5
    Par défaut staticbitmap
    merci pour cette reponse rapide mais je me suis mal expliqué..

    quand je parle d'etendre la portee de itemStaticBitmap14 c'est de rendre cet objet accessible pour modification, dans tout le programme, comme d'une variable globale.

    cet itemStaticbitmap est defini par un new dans une zone cree par dialogblocks
    xxxx::createControls() et hors de cette zone, itemStaticBitmap n'est pas defini.
    je voudrais pouvoir acceder a cet element a partir des autres fonctions du programme..

    il faudrait presque que cet item (et les sizers, scrollers, auinotepad dans lequel il se trouve imbriqué) soit cree dans une zone globale ... mais je ne sais pas faire..

    encore merci

  4. #4
    Membre Expert
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Par défaut
    Ce que tu peux faire, c'est une classe que tu instancies "globalement".

    Dans cette classe, tu surveilles les composants qui t'intéresse.
    Par exemple dans ta classe


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    xxxx::createControls()
    {
    	...
    	wxbitmap *tbitmap = new wxbitmap();
    	globalGUISingleton().WatchMainBitmap( tbitmap );
    	...
    }
     
    xxxx::~xxxx()
    {
    	globalGUISingleton().WatchMainBitmap( 0);
    }
    Dans une autre partie de ton code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    globalGUISingleton().GetMainBitmap();
    Dans le cas d'un programme avec un seul thread, cela fonctionne parfaitement, avec du multithread, il faut en plus mutexer.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 5
    Par défaut
    oui je vais essayer de ce coté.. ca correspond bien a ce que je veux faire..
    encore merci

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 5
    Par défaut
    bonjour

    a ce que j'ai compris, le principe du singleton est de s'assurer que l'on n'instancie pas plusieurs fois la meme classe..
    dans mon cas, wxStaticBitmap est instancié plusieurs fois car il y a plusieurs itemstaticbitmapxx en place sur la page principale..

    ce que je veux c'est que l'une d'entre elle soit visible de facon globale:
    extern j'ai essayé ca marche pas. (ou pas reussit)
    ou declarer globalement une staticbitmap pour lui affecter ensuite l'itemstaticbitmap apres sa creation avec new.. (pas reussit non plus)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [String]Comment etendre le mon Code ASCII??
    Par lanfeustdetroll dans le forum API standards et tierces
    Réponses: 24
    Dernier message: 25/07/2005, 14h42
  2. [Language][Package]Probleme de portée d'un Objet
    Par julien.v dans le forum Langage
    Réponses: 6
    Dernier message: 06/06/2005, 14h23
  3. Comment gérer un nombre inconnu d'objet ?
    Par Clad3 dans le forum C++
    Réponses: 28
    Dernier message: 12/03/2005, 11h55
  4. [POO] Comment connaître le type d'un objet
    Par zizou39 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 01/03/2005, 09h46
  5. Comment detecter le type d'un objet?
    Par nickylarson dans le forum C++Builder
    Réponses: 3
    Dernier message: 24/06/2003, 15h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo