Dessin d'une ligne entre 2 points... [Résolu]

Messages postés
17
Date d'inscription
mardi 2 novembre 2004
Dernière intervention
20 octobre 2005
- - Dernière réponse : cs_Kenavo
Messages postés
759
Date d'inscription
vendredi 21 mars 2003
Dernière intervention
1 octobre 2009
- 3 mai 2005 à 07:49
Salut tout le monde ;o)



j'ai un petit problème, je souhaite dessiner une ligne directement sur
la form, en connaissant les coordonnées de ses deux extrémités... Mais
je ne sais pas comment faire... Voici mon code :





procedure Tprincipal.maj_graph();

begin

//Calcul des coordonnées des points

if ((valeur1 1) and (valeur 1)) or ((valeur1 = 0) and (valeur = 0)) then

begin

coordX := coordX1 + 6;

coordY := coordY1;

end;

if (valeur1 1) and (valeur 0) then

begin

coordX := coordX1;

coordY := coordY1 + 50;

end;

if (valeur1 0) and (valeur 1) then

begin

coordX := coordX1;

coordY := coordY1 - 50;

end;

//Dessins points





//Décalage des coordonnées dans le temps

coordX1 := coordX;

coordY1 := coordY;

valeur1 := valeur;

end;



Merci d'avance de votre aide !...
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
17
Date d'inscription
mardi 2 novembre 2004
Dernière intervention
20 octobre 2005
3
Merci
Salut tout le monde ;o)



Le problème avec LineTo, c'est qu'il prend comme origine le curseur, si
j'ai bien tout compris. J'ai réussi à trouver comment faire, je me sert
d'un canvas :



begin

Canvas.Brush.Color := cllime;

canvas.Rectangle(coordX1,coordY1,coordX + 3,coordY + 3);

end;



Et la sa marche impec ! Merci quand même ni69 !



Bonne prog à tous !

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 98 internautes nous ont dit merci ce mois-ci

Commenter la réponse de DREAMER2208
Messages postés
759
Date d'inscription
vendredi 21 mars 2003
Dernière intervention
1 octobre 2009
3
Merci
T'as de droles de méthode pour tracer des lignes !......




LineTo
trace une ligne à partir des coordonnées de la plume. Pour modifier ces
coordonnées on utilise MoveTo. Si on veut une ligne de (X0,Y0) à
(X1,Y1), ça donne :



Canvas.MoveTo(X0,Y0);

Canvas.LineTo(X1,Y1);



Ken@vo


<hr size="2" width="100%">
Code, Code, Codec !

http://www.pourflorenceethussein.org/

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 98 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Kenavo
Messages postés
1529
Date d'inscription
samedi 12 juin 2004
Dernière intervention
5 juillet 2010
0
Merci
Tu peux utiliser LineTo pour dessiner une ligne. Cherche cette instruction dans l'aide de Delphi pour en savoir plus...


@+
Bonne Prog'
Nico



<HR>
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
Commenter la réponse de ni69
Messages postés
17
Date d'inscription
mardi 2 novembre 2004
Dernière intervention
20 octobre 2005
0
Merci
Merci, c'est vrai que c'est plus simple... Avec ma méthode, je
m'embrouillais avec l'épaisseur de la ligne, ce qui provoque un
décalage de mes traits... Par contre, je ne sais pas encore comment
mettre la ligne en couleur... Parce qu'avec ma méthode précédente, la
couleur s'appliquait à l'intérieur du rectangle, mais une ligne n'a pas
d'épaisseur...



Merci bcp !
Commenter la réponse de DREAMER2208
Messages postés
759
Date d'inscription
vendredi 21 mars 2003
Dernière intervention
1 octobre 2009
0
Merci
Pour la couleur :



Canvas.pen.color := clxxx;


Et regarde toutes les propriétés du TPen pour l'épaisseur, le style (continue, pointillé, ....)





Ken@vo


<hr size="2" width="100%">
Code, Code, Codec !

http://www.pourflorenceethussein.org/
Commenter la réponse de cs_Kenavo
Messages postés
17
Date d'inscription
mardi 2 novembre 2004
Dernière intervention
20 octobre 2005
0
Merci
Merci beaucoup Kenavo ! J'aurais une dernière question, c'est comment
effacer ce qui a été tracé... J'avais réussi à trouver une méthode,
mais elle effaçais aussi l'image que j'utilise comme fond...Donc j'ai
abandonner, et j'arrive plus à la retrouver... si qqun connais, sa
m'arrangerais... Merci beaucoup d'avance ! et bonne prog !
Commenter la réponse de DREAMER2208
Messages postés
759
Date d'inscription
vendredi 21 mars 2003
Dernière intervention
1 octobre 2009
0
Merci
Tu as deux méthodes pour effacer un ligne sur un fond :

1 - Tout redessiner sauf la ligne que tu veux effacer.

2 - Dessiner les lignes avec le propriété Pen.Mode à pmXor (fonction
Xor entre le fond et la couleur de la ligne). Pour en effacer une, il
suffit de la retracer en mode pmXor avec la même couleur .



Ken@vo


<hr size="2" width="100%">
Code, Code, Codec !

http://www.pourflorenceethussein.org/
Commenter la réponse de cs_Kenavo

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.