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

Lazarus Pascal Discussion :

Position d'une fiche après mouvement à la souris [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Invité
    Invité(e)
    Par défaut Position d'une fiche après mouvement à la souris
    Bonjour,

    je trouve cela curieux :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    uses
     [...]
      LMessages, LCLIntf;
    type
      { TForm1 }
      TForm1 = class(TForm)
        PopupNotifier1 : TPopupNotifier;      
        Button4 : TButton;
        procedure Button4Click(Sender : TObject);
      private
        { private declarations }
        procedure WMMove(var Message: TLMessage); message LM_MOVE;
      public
        { public declarations }
      end;
    var
      Form1 : TForm1;
     
    implementation
    {$R *.lfm}
    { TForm1 }
    procedure TForm1.WMMove(var Message: TLMessage);
    begin
      Caption := Format('Position de la fiche x: %d, y: %d, l: %d, t: %d' ,
      [TLMMove(Message).XPos,TLMMove(Message).YPos, Form1.Left, Form1.Top]) ;
    end;
     
    procedure TForm1.Button4Click(Sender : TObject);
    begin
      Showmessage('Position de la fiche : '+IntToStr(Form1.Left)+'/'+IntToStr(Form1.Top));
    end; 
    end.
    Je clique une première fois sur le Button4 --> 365/125
    Je bouge la Form1 à la souris. Dans son caption, TLMMove(Message).XPos,TLMMove(Message).YPos varient alors que Form1.Left, Form1.Top restent 'bloqués' à 365 et 125.

    Je relâche le bouton de la souris et termine donc ainsi le mouvement de la fiche. Je clique une deuxième fois sur le Button4 --> 365/125. Evidemment c'est erroné.
    1. Pourquoi Form1.Left et Top ne sont-ils pas réactualisés à ce moment ?
    2. Comment les réactualise-t-on ?


    Merci.
    Cordialement. Gilles
    Dernière modification par Invité ; 17/03/2012 à 15h47.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bon, j'ai réglé le problème. En réalité, il est lié à la présence d'un TPopupNotifier dont l'utilisation de Hide lors d'un déplacement de la Form bloque la réactualisation de Form1.Top et Left. Pourquoi ? Je n'ai pas le temps d'examiner plus le problème.

    Finalement, j'utilise une procedure WMWindowPosChanged(var Message: TLMessage) ; message LM_WINDOWPOSCHANGED; pour lancer le Hide du TPopupNotifier;

    Cordialement. Gilles
    Dernière modification par Invité ; 17/03/2012 à 15h49. Motif: Précisions

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

Discussions similaires

  1. Attribuer un "position fixed" à une div après un certain niveau de scrolling
    Par identifiant_bidon dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 17/02/2014, 15h58
  2. Sauver et remettre la position d'une scrollbar après submit formulaire
    Par dewey01 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/04/2012, 09h23
  3. position d'une chaine après un caractère
    Par bellak dans le forum C#
    Réponses: 1
    Dernier message: 25/05/2010, 03h49
  4. Sélectionner une fiche (ctrl+A ou Souris)
    Par Manopower dans le forum Delphi
    Réponses: 2
    Dernier message: 23/09/2006, 13h09
  5. Réponses: 3
    Dernier message: 23/02/2006, 19h14

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