Dès que l’on va placer ou déplacer des objets graphiques, il va falloir spécifier les coordonnées. Et ce n’est pas toujours d’une simplicité biblique.
Premier point, sur lequel M. de Lapalisse, un ancien voisin à moi, ne m’aurait pas démenti : l’écran possède deux dimensions. Cette forte pensée étant posée, il reste que l’origine (le point 0, 0) se trouve en haut à gauche, et pas du tout en bas à gauche, là où tout occidental, hormis Bill Gates, l’aurait placé.
Deuxième problème : comment savoir quelles sont les dimensions de l’objet sur lequel on veut dessiner ? Là, il faut faire attention. Car si Height et Width sont, comme vous le savez, les dimensions extérieures d'un objet, dans le cas d'une Form, on peut avoir besoin de connaître les dimensions intérieures. Celles-ci nous sont alors fournies par les propriétés ScaleHeight et ScaleWidth de cette Form.
Autre aspect : on dispose de plusieurs unités de mesures possibles pour les coordonnées.
L’unité par défaut est le twip. Cette chose représente très exactement 1/567e de centimètre. Le gros avantage de cette unité, c’est qu’elle est indépendante de la résolution du périphérique utilisé. Un centimètre, c’est toujours un centimètre (nous négligerons ici les effets de la relativité, la vitesse moyenne de déplacement des écrans par rapport à celui qui les regarde étant généralement négligeable par rapport à la vitesse de la lumière).
Mais il y a aussi le pixel. L’avantage du pixel, c’est sa rapidité. Vous épargnez à Windows une conversion, puisque un pixel, c’est un point. Mais l’inconvénient, c’est que selon les résolutions d’écran, le nombre de pixels varie fortement… (le nombre de twips varie aussi selon la taille de l’écran, me direz-vous, alors perdu pour perdu…)
On modifie (ce qui n’est généralement pas indispensable) le système de mesures par la propriété ScaleMode de la Form.