Déplacement d'une fiche

Résolu
Signaler
Messages postés
23
Date d'inscription
vendredi 7 octobre 2005
Statut
Membre
Dernière intervention
28 juillet 2006
-
Messages postés
418
Date d'inscription
mardi 3 janvier 2006
Statut
Membre
Dernière intervention
26 novembre 2013
-
salut tout le monde


pour que je puisse déplacer une forme sans barre de titre j'ai mis un shape mais j'ai oublier un simple code


************


releasecapture;


shape1.perform(wm_systemcommand,xxx,xxx);


************


qq'1 peut m'aider à trouver les xxx,xxx

7 réponses

Messages postés
3827
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
16 décembre 2021
46
Salut à tous,

Alors oui pour la recherche mais une petite précision toute fois :

Perform (WM_SYSCOMMAND, $F012, 0);  ne veut rien dire

La commande exacte est :
Procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
Begin
  ReleaseCapture;
  Perform (WM_SYSCOMMAND, SC_MOVE or HTCAPTION, 0);
End;

Et c'est pas la peine de faire un controle sur le bouton enfoncé (gauche où droit) il est effectué juste avant l'execution de la commande

@+
Cirec
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Au secours Google !
voir la réponse ici (réponse numéro 3)

May Delphi be with you ! (and Google too)
<hr color="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
Messages postés
1173
Date d'inscription
mercredi 2 novembre 2005
Statut
Membre
Dernière intervention
10 septembre 2011
3
Dans le réglement il est bien écrit Faire un recherche avant de poster
. Si tu en avais fait une, tu aurais tout de suite trouvé.

@+
 Matt

<hr size="2" width="100%" />La paresse est la mère du génie...
Messages postés
418
Date d'inscription
mardi 3 janvier 2006
Statut
Membre
Dernière intervention
26 novembre 2013
4
Salut Cirec,

J'ai toujours fait un déplacement (Form, Panel...) avec une constante = $F012.
Pourquoi dis-tu : "cela ne veut rien dire" ?
Et petite explication sur la constante HTCAPTION ?

A +
Thierry
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Cirec, les constantes que tu utilises n'étaient toujours pas déclarées avec Delphi 5 si ma mémoire est bonne.
Je suis d'accord avec toi sur le fait qu'il faut privilégier l'utilisation de constantes ne serait-ce que pour rendre le code plus lisible.

May Delphi be with you !
<hr color="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
Messages postés
3827
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
16 décembre 2021
46
@Delphiprog, je viens de faire une recherche dans mon D4 et les deux constantes (plus d'autres ) y sont déclarés (Unit Windows)

@ThWilliam, oui tu utilises cette constante "$F012" mais cette valeur n'existe pas dans les sources  c'est une association de deux constantes qui te donne cette valeur:

  {$EXTERNALSYM SC_MOVE}
  SC_MOVE = 61456;

  {$EXTERNALSYM HTCAPTION}
  HTCAPTION = 2;

et SC_MOVE + HTCAPTION := 61458 ce qui donne en hex $F012

HTCaption indique un Hit Test sur la barre de titre de l'application qui est utilisé dans les messages Windows :  If (message.Msg WM_NCLBUTTONDOWN) <gras>and (Message.WParamLo</gras> htCaption) Then ...

Voilà, en esperant que soit un peut plus claire pour vous

@+
Cirec
Messages postés
418
Date d'inscription
mardi 3 janvier 2006
Statut
Membre
Dernière intervention
26 novembre 2013
4
Salut Cirec,

C'est parfaitement clair.
Merci.

Thierry