File "Module6.bas"
Full Path: /home/analogde/www/DEV3/Module6.bas
File size: 5.23 KB
MIME-type: text/plain
Charset: 8 bit
Attribute VB_Name = "Module6"
Public Function Insert_BROCHE(ByVal X As Integer, ByVal Y As Integer, ByVal Type_BROCHE As String, ByVal BROCHE_Orientation As String) As Long
' incrmente le nombre de broche
NB_BROCHE = NB_BROCHE + 1
' redimensionne le tableau de liens
ReDim Preserve Objet_BROCHE(NB_BROCHE - 1)
' instancie une nouvelles broche
Set Objet_BROCHE(NB_BROCHE - 1) = New BROCHE
' defini les parametres de la nouvelle broche
tmp = Objet_BROCHE(NB_BROCHE - 1).SetParametres_BROCHE(Type_BROCHE, NB_BROCHE - 1, X, Y, BROCHE_Orientation)
' retourne l'ID
Insert_BROCHE = NB_BROCHE - 1
End Function
Public Sub ReDraw_BROCHE(pic As PictureBox)
'on redessine tout le tableau
Dim i As Integer, j As Integer
Dim PosX As Integer, PosY As Integer
Dim Gravite_Pos_X As Integer, Gravite_Pos_Y As Integer
Dim Selectionnee As Long
Dim Type_BROCHE As String
Dim Orientation_BROCHE As String
PosX = 0
PosY = 0
'pic.Cls
'on dessine les objets
For i = 0 To NB_BROCHE - 1
' recupere la position
tmp = Objet_BROCHE(i).GetPosition_BROCHE(PosX, PosY)
Type_BROCHE = Objet_BROCHE(i).GetType_BROCHE()
Orientation_BROCHE = Objet_BROCHE(i).GetOrientation_BROCHE()
'dessine l'objet
Selectionnee = 0
If PorteSelectionnee = i Then Selectionnee = 1
tmp = Dessine_BROCHE(PosX, PosY, Gravite_Pos_X, Gravite_Pos_Y, Orientation_BROCHE, Etat, Type_BROCHE, pic, Selectionnee)
tmp = Objet_BROCHE(i).SetPosition_BROCHE(PosX, PosY, Gravite_Pos_X, Gravite_Pos_Y)
Next i
End Sub
Public Function Dessine_BROCHE(ByVal X As Integer, ByVal Y As Integer, ByRef Gravite_Pos_X As Integer, ByRef Gravite_Pos_Y As Integer, PAD_Orientation As String, ByVal Etat As Long, ByVal Type_PAD As String, pic As PictureBox, Optional ByRef Selectionne As Long = 0)
Dim L As Double
Dim W As Double
Dim couleur_rouge As String
Dim couleur_vert As String
Dim couleur_bleu As String
Dim couleur_noir As String
Dim Boite As Long
Dim A As Point_A
Dim B As Point_A
Dim C As Point_A
Dim D As Point_A
'If Etat = 1 Then couleur = RGB(255, 0, 0)
'If Etat = 0 Then couleur = RGB(0, 255, 0)
'If Selectionne = 1 Then couleurboite = RGB(0, 0, 255)
'If Selectionne = 0 Then couleurboite = RGB(0, 0, 0)
' standard
'Boite = 1
' dessine le corps de la gomtrie
couleur_rouge = RGB(255, 0, 0)
couleur_vert = RGB(0, 255, 0)
couleur_bleu = RGB(0, 0, 255)
couleur_noir = RGB(0, 0, 0)
L = 400
W = 200
' calcul
A.X = X - (L / 2)
A.Y = Y - (W / 2)
B.X = X + (L / 2)
B.Y = Y - (W / 2)
C.X = X + (L / 2)
C.Y = Y + (W / 2)
D.X = X - (L / 2)
D.Y = Y + (W / 2)
If PAD_Orientation = "r" Then
End If
If PAD_Orientation = "n" Then
'corps du rectangle
pic.Line (A.X, -A.Y)-(B.X, -B.Y), couleur_noir
pic.Line (B.X, -B.Y)-(C.X, -C.Y), couleur_noir
pic.Line (C.X, -C.Y)-(D.X, -D.Y), couleur_noir
pic.Line (D.X, -D.Y)-(A.X, -A.Y), couleur_noir
' dessine le point de gravit
pic.Circle (X, -Y), taillepuce, couleur_rouge
End If
' dessine la sortie
'If Sortie = 1 Then
' pic.Line (X + largeur + offsetsortie, Y + hauteur / 2)-(X + largeur + taillepin, Y + hauteur / 2), couleurboite
' pic.Circle (X + largeur + taillepin + taillepuce, Y + hauteur / 2), taillepuce, couleur
' symbole inverse
' If inverse = 1 Then pic.Circle (X + largeur + taillepuce, Y + hauteur / 2), taillepuce
' SortiePosX = X + largeur + taillepin + taillepuce
' SortiePosY = Y + hauteur / 2
'End If
' dessine les entrees
'For i = 0 To NbEntrees - 1
' If EtatEntrees(i) = 1 Then couleur = RGB(255, 0, 0)
' If EtatEntrees(i) = 0 Then couleur = RGB(0, 255, 0)
' pic.Line (X, Y + (i + 1) * hauteurStd)-(X - taillepin, Y + (i + 1) * hauteurStd), couleurboite
' pic.Circle (X - taillepin - taillepuce, Y + (i + 1) * hauteurStd), taillepuce, couleur
' EntreePos(0, i) = X - taillepin - taillepuce
' EntreePos(1, i) = Y + (i + 1) * hauteurStd
'Next i
' dessine le symbole
'pic.CurrentX = X + 100
'pic.CurrentY = Y - 80 + hauteur / 2
'pic.Print symbole
End Function
Public Function Trouve_BROCHE(ByVal X As Integer, ByVal Y As Integer, Optional ByRef DifX As Integer, Optional ByRef DifY As Integer)
' trouve une broche en fonction des coordonnees
Dim PosX As Integer, PosY As Integer
Dim BROCHE As Integer
Dim message As String
'MsgBox "X: " & X & "Y:" & -Y
' correction de l'offset
Y = -Y
' par defaut pad non trouve
BROCHE = -1
For i = 0 To NB_BROCHE - 1
' on recupere les positions du pad
tmp = Objet_BROCHE(i).GetPosition_BROCHE(PosX, PosY)
' Q1
If ((X > 0) And (Y > 0)) Then
End If
' Q1
If ((X < 0) And (Y > 0)) Then
End If
' Q1
If ((X < 0) And (Y < 0)) Then
End If
' Q1
If ((X > 0) And (Y < 0)) Then
End If
' si le clic est dans la zonne de selection, c'est gagn
If X > PosX - 50 And X < PosX + 50 And Y > PosY - 50 And Y < PosY + 50 Then
BROCHE = i
If IsNumeric(DifX) Then DifX = X - PosX
If IsNumeric(DifY) Then DifY = Y - PosY
End If
Next i
Trouve_BROCHE = BROCHE
End Function