Comment dessiner des lignes vertical ou horizontal en mode exécution

Philippou22 - 22 oct. 2001 à 18:58
  - 27 oct. 2004 à 15:22
comment dessiner des ligne pour ensuite aller receuillir leur coordonnée

Je veux cela pour pouvoir dessiner des plan de maison... Et ensuite obtenir les dimensions selon un échelle pré-établie

merci

7 réponses

pour dessiner des lignes, il te faut deja spécifier des coordonnées ... donc plus besoin de les chercher après ...
Philippou22
23 oct. 2001 à 17:17
Quelle fonction ou méthode à utiliser????
Faut que t'utilises les API...

Exemple :

---- Petit module ----

Public Declare Function MoveToEx Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, lpPoint As POINTAPI) As Long
Public Declare Function LineTo Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long

Public Type POINTAPI
X As Long
Y As Long
End Type

---- Fin du petit module ----

---- Petite Form ----

'Sur l'évenement que tu veux...

Dim BackVal As Long
Dim Point As POINTAPI
BackVal = MoveToEx(TaForm.hdc, 20, 20, Point) ' Définit le point de départ
BackVal = LineTo(TaForm.hdc, 300, 20) ' Tu traces une ligne de ton point de départ vers ton point d'arrivé

---- Fin de petite form ----

Voila tu viens de dessiner une ligne sur ta form ...

plus d'info ... n'hesite pas :)
Philippou22
25 oct. 2001 à 17:39
ya pas derreur... mais ya rien qui ce désinne...... Je comprend pas ya pas d'objet line ou quelque chose du genre à déclaré, avec la couleur des chose comme ca???

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ouais... j'oubliais... désolé

La couleur de ta ligne sera de la couleur du moment de la propriété ForeColor de ta Form.

Je la refait :)

Exemple :

---- Petit module ----

Public Declare Function MoveToEx Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, lpPoint As POINTAPI) As Long
Public Declare Function LineTo Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long

Public Type POINTAPI
X As Long
Y As Long
End Type

---- Fin du petit module ----

---- Petite Form ----

'Sur l'évenement que tu veux...

Dim BackVal As Long
Dim Point As POINTAPI
BackVal = MoveToEx(TaForm.hdc, 20, 20, Point) ' Définit le point de départ
TaForm.ForeColor= RGB(0, 0, 255) ' En Bleu
BackVal = LineTo(TaForm.hdc, 300, 20) ' Tu traces une ligne de ton point de départ vers ton point d'arrivé
TaForm.ForeColor= RGB(255, 0, 0) ' En Rouge
BackVal = LineTo(TaForm.hdc, 300, 50) ' Tu traces une ligne de ton point d'arrivé de ta ligne d'avant vers ton point d'arrivé

---- Fin de petite form ----

Voila

Note : je te conseil d'utiliser directement les api parsk j'imagine qu'il y aura beaucoup de ligne a tracer et les methodes style TaForm.Line risque d'etre plus long a l'execution...

Larwin
Salut

tu mets ta form sur Autoredraw = True
Ensuite dans le code :

' Trace une ligne entre 10,10 et le point 20,30 :
Line (10,10)-(20,30),rgb(Rouge,Vert,Bleu)

' Trace un rectangle entre le point 10,10 et le point 20,30 :
Line (10,10)-(20,30),rgb(Rouge,Vert,Bleu),b

' Trace un rectangle plein entre le point 10,10 et le point 20,30 :
Line (10,10)-(20,30),rgb(Rouge,Vert,Bleu),bf

Mais on peut aussi avoir des cercles, avec le fonction ... : Cercle
Cercle (10,10),10

a+

Int19h
Sguy (sgaille en Anglais dans le texte)
Hi ,
J'ai utilisé ce principe mais ca marche qu'avec les form!
Si je rajoute un controle Shape par ex, et bien je peux pas recuperer la couleur d'un pixel avec getPixel.
Ex. je fais tourné un pixel autour d'un cercle. (la terre).
Je voudrais à la detection d'une zone claire, pouvoir empêcher l'affichage du pixel!
comment faire?
Rejoignez-nous