Grille de dessin

cs_ghassenus Messages postés 33 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 27 avril 2007 - 22 déc. 2002 à 18:21
cs_ghassenus Messages postés 33 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 27 avril 2007 - 22 déc. 2002 à 23:43
salut
bein je suis débutant en delphi et je souhaite crééer une grille de dessin ( comme papier millimetré )
je voudrait que le crayon de dessin ait un accrochage à chaque point de la grille
marci d'avance pour votre aide
Tendrement :)

2 réponses

cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
22 déc. 2002 à 19:58
Si tu utilises un TImage ou TPaintBox ou le canevas directement pour dessiner, je suppose que tu utilises OnMouseMove pour effectuer le dessin. Pour 'accrocher' le dessin à la grille il faut arrondir les valeur données par X et Y des évènements OnMouseMove. Par rxemple pour une Grille de pas 10x10 pixels :

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
X:=((X+5)Div 10)*10;
Y:=((Y+5)Div 10)*10;
// ... suite du code
end;

--- :sleepy) Nono40@fr.st :sleepy) ---
Nouveau ---> Nono40.fr.st
0
cs_ghassenus Messages postés 33 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 27 avril 2007
22 déc. 2002 à 23:43
ok merci
bein j'utilise un TPaintBox pour dessiner la grille et j'utilise exactement la procedure de papier millimetré de
YAYE Kimba que j'ai trouver sur ce site(astuce N°1902) je voudrais bien que chaque objet que je dessine soit "autonome"c'est a dire qu'il peut être déplacer ,copier ,suprimer ,bein que l'utilisateur puisse le manipuler ; tout mes dessins etant des lignes je voudrais enregistrer leur debut et leur fin et que le repérage commence du centre de la TPaintBox maintenant mon (0,0) se trouve a bas et a gauche de la TPaintBox;voici le code que j'ai ecrit pour identifier le (0,0) et commencer le reperage a partir de là

X1=((x-30)/40);
Y1:=((1825-y)/40);

aussi les dimension de la PaintBox

grad:=4              // Distance en pixels entre les graduations
H:=grad*464;         
 W:=grad*464;
  PaintBox1.Height:=H;
  PaintBox1.Width:=W;

ceux de la ScrollBox qui la contient
width:=978;
height:=655;

et merci pour votre aide precieuse(vraiment precieuse) ;)
Tendrement :)
0
Rejoignez-nous