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 :

Fonction qui s'active lorsqu'un Form bouge


Sujet :

C++Builder

  1. #1
    Membre habitué
    Homme Profil pro
    Chercheur génie électrique
    Inscrit en
    Mai 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur génie électrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Points : 136
    Points
    136
    Par défaut Fonction qui s'active lorsqu'un Form bouge
    Je voudrais identifier la position d'un Form dans l'écran pendant le mouvement d'un Form, c'est à dire capter Form->Top dynamiquement.
    Je compte sur vous et merci.

    Xavier

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 43
    Points : 43
    Points
    43
    Par défaut
    A ma maigre connaissance, il n'y en a pas, mais tu peux utiliser un Timer pour regarder si le Form a Bougé.
    Tu enregistres la position de ton form dans 2 variables et tu les compares à chaques timers avec la valeur actuelle.
    Ca pourra peut-être te dépanner en attendant une meileure réponse.

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2002
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    bonjour

    peut être que tu peux intersepter un message la l'API.

    exemple d'évenement:

    Visualisation des messages avec «*WinSight32*»
    Études de quelques messages
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    WM_CREATE
    WM_CREATE
    // Ce message est envoyé lors de la création de la fenêtre avant 
    // qu ’elle soit visible
    WM_DESTROY
    // Envoyé lorsque l ’application termine et que la fenêtre est détruite
    WM_QUIT
    // Ce message indique une demande de terminer l ’application. 
    // Il fait sortir le programme de la boucle des messages (message loop).
    Code d*’un programme Windows développé avec l*’API (Application Programming Interface)

    peut être en existie une pour ce que tu cherche.

    va voir dans

    Rubriques d'aide:Microsoft Programmer's Guide to Windows 95
    (c'est dans l'aide du Builder)

    bonne chance

  4. #4
    Membre chevronné

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 390
    Points : 1 777
    Points
    1 777
    Par défaut
    Salut Xavier !

    Voici je que j'ai fait avec BCB3 :

    Form1 contient un TStatusBar et Form2 est la fenêtre dont on veut
    connaître la position qui sera affichée dans StatusBar1 de Form1.
    J'ai rajouté un "panel" dans le StatusBar en éditant sa propriété Panels.
    L'astuce consiste à intercepter le message WM_WINDOWPOSCHANGING;

    Dans le .h de Form2 déclarer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    protected :
        int __fastcall WINPOSCHANGING(TMessage Message);
     
        BEGIN_MESSAGE_MAP
        MESSAGE_HANDLER(WM_WINDOWPOSCHANGING, TMessage, WINPOSCHANGING)
        END_MESSAGE_MAP(TComponent)
    Dans le .cpp de Form2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int __fastcall TForm2::WINPOSCHANGING(TMessage Message)
    {
    WINDOWPOS *lpwp = (WINDOWPOS*)Message.LParam;
    Form1->StatusBar1->Panels->Items[0]->Text = IntToStr(lpwp->y);
    return(0);
    }
    Pour information :

    The WINDOWPOS structure contains information about the size and position
    of a window.

    typedef struct _WINDOWPOS {
    HWND hwnd;
    HWND hwndInsertAfter;
    int x;//left
    int y;//top
    int cx;
    int cy;
    UINT flags;//Pour repaint etc...
    } WINDOWPOS;
    On peut sans doute améliorer ou simplifier car je ne maîtrise pas complètement
    ce type de manipulation ! En tout cas, à ce stade, ça fonctionne.
    A plus !

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

Discussions similaires

  1. Comment appeler une fonction lorsque la souris bouge
    Par odjapo dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 13/06/2014, 19h56
  2. Fonction qui ne fonctionne que lorsqu'il y a un Alert.
    Par @po©alypse dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 03/01/2011, 18h03
  3. [MySQL] Une fonction qui renverrait tout le résultat de la requête sous forme de array
    Par piotrr dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 04/03/2009, 18h11
  4. Réponses: 2
    Dernier message: 06/03/2008, 22h20
  5. Form bloquée et fonction qui boucle
    Par bgcode dans le forum VB.NET
    Réponses: 2
    Dernier message: 28/08/2007, 14h21

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