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

C++Builder Discussion :

question de néophite


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 7
    Par défaut question de néophite
    Bonjour,
    je m'intéresse au C++ et je débute. Pourriez-vous m'indiquez pourquoi lors que le composant est invisible, je n'arrîve pas à le rendre visible avec les lignes de code suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void __fastcall TForm1::Memo1MouseMove(TObject *Sender, TShiftState Shift,
          int X, int Y)
    {
           if (Memo1->Visible==true)
              Memo1->Hide();
              else Memo1->Show();
    }
    Merci de votre réponse
    chiennoir

  2. #2
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Bonjour,
    Si ton composant n'est pas visible, il ne vas capter ni les évènements souris ni les évènements lclavier...
    @ +

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 7
    Par défaut
    Merci pour ta réponse. Mais est-ce que cela veut dire qu'il est impossible de faire réagir un élément qui n'est pas visible? N'y a-t-il pas une solution?

  4. #4
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    chiennoir a ecrit:
    Bonjour,
    je m'intéresse au C++ et je débute. Pourriez-vous m'indiquez pourquoi lors que le composant est invisible, je n'arrîve pas à le rendre visible avec les lignes de code suivantes:
    Une forme deux boutons.
    le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    Memo1->Visible = true;
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    Memo1->Visible = false;
    }
    bouton1 rend le TMemo1 Visible
    bouton2 rend le TMemo1 Invisible
    Si c'est ce que tu cherche adapte ces quelques lignes.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 7
    Par défaut
    Merci à toi Blondelle pour ta réponse. Mais ce que je souhaite c travailler sur le même composant. C'est à dire que je veux que lorsque le composant est invisible, en repassant dessus avec la souris, il réapparaisse. Ca marche pour le faire disparaître mais pas le contraire.

  6. #6
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    chiennoir a ecrit:
    Merci à toi Blondelle pour ta réponse. Mais ce que je souhaite c travailler sur le même composant. C'est à dire que je veux que lorsque le composant est invisible, en repassant dessus avec la souris, il réapparaisse. Ca marche pour le faire disparaître mais pas le contraire.
    Tu connait la position de to TMemo sur ta forme avec l'evenement "OnMouseMove" en faisant un teste sur les coordonnees tu devrait y arriver.
    Quand pense tu Sunchaser.

  7. #7
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    En tout cas moi je pense que c'est une bonne idée (je sais on ne m'a pas demandé mon avis, je m'en vais )

  8. #8
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Ton TMemo sur la form a une position Top Left et une dimension Height Width
    Avec l'evenement OmouseMove de la form tu connait la position de la sourie sur celle-ci donc quand elle entre dans le cadre du TMemo tu declanche la propriete visible du TMemo
    un exemple:
    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
     
    // coordonnees du TMemo
    // Top = 144
    // Left = 76
    // Height = 89
    // Width = 185
     
    void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift,
          int X, int Y)
    {
    if ( X > 76 && X < 261 && Y > 144 && Y < 233)
    {
    Memo1->Visible = true;
    }
    }

  9. #9
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    pottiez a ecrit:
    En tout cas moi je pense que c'est une bonne idée (je sais on ne m'a pas demandé mon avis, je m'en vais )
    Personnellement je suis toujours comptant de recevoir un avis, la demande s'adressait a Sunchaser qui avait poste, je pense que le sujet est ouvert a tous le monde, en tout cas merci et ne soit plus triste s'il te plait.

  10. #10
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Par contre une remarque, les coordonnée de la souris sont prisent par rapport au bord de l'écran il me semble alors que les coordonné du TMemo par rapport au bord de la fenetre, ce qui n'est pas forcément les même.

  11. #11
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Citation Envoyé par blondelle
    chiennoir a ecrit:

    Tu connait la position de to TMemo sur ta forme avec l'evenement "OnMouseMove" en faisant un teste sur les coordonnees tu devrait y arriver.
    Quand pense tu Sunchaser.
    Je pense que c'est surement la plus simple et la plus rapide des solutions....non ?
    Maintenant, on peut toujours solliciter Henderson, que je me permet de surnommer (juste pour blaguer, sans vouloir blesser ... hein !) : 'TCustomControl-Man', qui pourrait surement proposer un truc avec une dérivé d'un ancêtre du TMemo etc, etc, etc...

    @ +

  12. #12
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Sunchaser a ecrit:
    Je pense que c'est surement la plus simple et la plus rapide des solutions....non ?
    Maintenant, on peut toujours solliciter Henderson, que je me permet de surnommer (juste pour blaguer, sans vouloir blesser ... hein !) : 'TCustomControl-Man', qui pourrait surement proposer un truc avec une dérivé d'un ancêtre du TMemo etc, etc, etc...
    Je me recite le poste est ouvert a tout le monde je pense pour que personne ne soit triste

  13. #13
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Voici ce que j'en pense, si le memo est posé directement sur la form :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift,
          int X, int Y)
    {
    TRect R = Memo1->BoundsRect;
    Memo1->Visible = ((X < R.Right) &&
                      (X > R.Left) &&
                      (Y < R.Bottom) &&
                      (Y > R.Top));
    }
    En espérant avoir bien compris ce que l'on cherche à faire...
    Si c'est le cas, on peut éventuellement rajouter un test supplémentaire pour éviter de solliciter le memo à chaque mouvement de la souris sur la form...
    Ca ne sert à rien de le rendre de plus en plus invisible...
    A plus !

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

Discussions similaires

  1. [Kylix] Compiler un source Delphi 7
    Par oamram dans le forum EDI
    Réponses: 7
    Dernier message: 05/02/2006, 19h35
  2. Divers questions
    Par Freakazoid dans le forum DirectX
    Réponses: 2
    Dernier message: 06/08/2002, 21h57
  3. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11
  4. Question de faisabilité
    Par lisarasu dans le forum CORBA
    Réponses: 3
    Dernier message: 14/05/2002, 11h26
  5. [HyperFile] 2 questions de débutant
    Par khan dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 29/04/2002, 23h18

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