VERSION 5.00 Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX" Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "comdlg32.ocx" Object = "{6B7E6392-850A-101B-AFC0-4210102A8DA7}#1.3#0"; "comctl32.ocx" Begin VB.Form Principal AutoRedraw = -1 'True Caption = "MitLoop" ClientHeight = 8040 ClientLeft = 3585 ClientTop = 3195 ClientWidth = 11535 Icon = "Principal.frx":0000 LinkTopic = "Form2" ScaleHeight = 8040 ScaleWidth = 11535 StartUpPosition = 2 'CenterScreen Begin ComctlLib.Toolbar Toolbar1 Align = 1 'Align Top Height = 540 Left = 0 TabIndex = 3 Top = 0 Width = 11535 _ExtentX = 20346 _ExtentY = 953 ButtonWidth = 820 ButtonHeight = 794 Appearance = 1 ImageList = "ImageList1" _Version = 327682 BeginProperty Buttons {0713E452-850A-101B-AFC0-4210102A8DA7} NumButtons = 26 BeginProperty Button1 {0713F354-850A-101B-AFC0-4210102A8DA7} Key = "" Object.ToolTipText = "Nuevo Proyecto" Object.Tag = "" ImageIndex = 1 EndProperty BeginProperty Button2 {0713F354-850A-101B-AFC0-4210102A8DA7} Key = "" Object.ToolTipText = "Abrir Proyecto Existente" Object.Tag = "" ImageIndex = 2 EndProperty BeginProperty Button3 {0713F354-850A-101B-AFC0-4210102A8DA7} Key = "" Object.ToolTipText = "Grabar Proyecto Actual" Object.Tag = "" ImageIndex = 3 EndProperty BeginProperty Button4 {0713F354-850A-101B-AFC0-4210102A8DA7} Key = "" Object.Tag = "" Style = 3 MixedState = -1 'True EndProperty BeginProperty Button5 {0713F354-850A-101B-AFC0-4210102A8DA7} Key = "" Object.ToolTipText = "Zoom +" Object.Tag = "" ImageIndex = 4 EndProperty BeginProperty Button6 {0713F354-850A-101B-AFC0-4210102A8DA7} Key = "" Object.ToolTipText = "Zoom -" Object.Tag = "" ImageIndex = 5 EndProperty BeginProperty Button7 {0713F354-850A-101B-AFC0-4210102A8DA7} Key = "" Object.Tag = "" Style = 3 MixedState = -1 'True EndProperty BeginProperty Button8 {0713F354-850A-101B-AFC0-4210102A8DA7} Key = "" Object.ToolTipText = "Nueva Línea Horizontal" Object.Tag = "" ImageIndex = 6 EndProperty BeginProperty Button9 {0713F354-850A-101B-AFC0-4210102A8DA7} Key = "" Object.Tag = "" Style = 3 MixedState = -1 'True EndProperty BeginProperty Button10 {0713F354-850A-101B-AFC0-4210102A8DA7} Key = "" Object.ToolTipText = "Nueva Fase Símplex" Object.Tag = "" ImageIndex = 7 EndProperty BeginProperty Button11 {0713F354-850A-101B-AFC0-4210102A8DA7} Key = "" Object.ToolTipText = "Nueva Fase Dúplex Horizontal" Object.Tag = "" ImageIndex = 8 EndProperty BeginProperty Button12 {0713F354-850A-101B-AFC0-4210102A8DA7} Key = "" Object.ToolTipText = "Nueva Fase Dúplex Vertical" Object.Tag = "" ImageIndex = 9 EndProperty BeginProperty Button13 {0713F354-850A-101B-AFC0-4210102A8DA7} Key = "" Object.ToolTipText = "Nueva Fase Tríplex I" Object.Tag = "" ImageIndex = 10 EndProperty BeginProperty Button14 {0713F354-850A-101B-AFC0-4210102A8DA7} Key = "" Object.ToolTipText = "Nueva Fase Tríplex II" Object.Tag = "" ImageIndex = 11 EndProperty BeginProperty Button15 {0713F354-850A-101B-AFC0-4210102A8DA7} Key = "" Object.ToolTipText = "Nueva Fase Cuádruplex" Object.Tag = "" ImageIndex = 12 EndProperty BeginProperty Button16 {0713F354-850A-101B-AFC0-4210102A8DA7} Key = "" Object.Tag = "" Style = 3 MixedState = -1 'True EndProperty BeginProperty Button17 {0713F354-850A-101B-AFC0-4210102A8DA7} Key = "" Object.ToolTipText = "Nuevo Obstaculo Normal" Object.Tag = "" ImageIndex = 13 EndProperty BeginProperty Button18 {0713F354-850A-101B-AFC0-4210102A8DA7} Key = "" Object.ToolTipText = "Nuevo Obstaculo Elevado Apoyado" Object.Tag = "" ImageIndex = 14 EndProperty BeginProperty Button19 {0713F354-850A-101B-AFC0-4210102A8DA7} Key = "" Object.ToolTipText = "Nuevo Obstaculo Elevado" Object.Tag = "" ImageIndex = 15 EndProperty BeginProperty Button20 {0713F354-850A-101B-AFC0-4210102A8DA7} Key = "" Object.Tag = "" Style = 3 MixedState = -1 'True EndProperty BeginProperty Button21 {0713F354-850A-101B-AFC0-4210102A8DA7} Key = "" Object.ToolTipText = "Resolución Manual" Object.Tag = "" ImageIndex = 17 EndProperty BeginProperty Button22 {0713F354-850A-101B-AFC0-4210102A8DA7} Key = "" Object.ToolTipText = "Optimización Automática" Object.Tag = "" ImageIndex = 18 EndProperty BeginProperty Button23 {0713F354-850A-101B-AFC0-4210102A8DA7} Key = "" Object.Tag = "" Style = 3 MixedState = -1 'True EndProperty BeginProperty Button24 {0713F354-850A-101B-AFC0-4210102A8DA7} Key = "" Object.ToolTipText = "Resultados" Object.Tag = "" ImageIndex = 16 EndProperty BeginProperty Button25 {0713F354-850A-101B-AFC0-4210102A8DA7} Key = "" Object.Tag = "" ImageIndex = 19 Style = 3 EndProperty BeginProperty Button26 {0713F354-850A-101B-AFC0-4210102A8DA7} Key = "" Object.ToolTipText = "Generar Informe en Excel" Object.Tag = "" ImageIndex = 20 EndProperty EndProperty End Begin MSComctlLib.StatusBar StatusBar1 Align = 2 'Align Bottom Height = 255 Left = 0 TabIndex = 2 Top = 7785 Width = 11535 _ExtentX = 20346 _ExtentY = 450 _Version = 393216 BeginProperty Panels {8E3867A5-8586-11D1-B16A-00C0F0283628} NumPanels = 9 BeginProperty Panel1 {8E3867AB-8586-11D1-B16A-00C0F0283628} Style = 1 Enabled = 0 'False Object.Width = 1191 MinWidth = 1191 TextSave = "MAYÚS" Object.ToolTipText = "Activado si está activado Bloq Mays." EndProperty BeginProperty Panel2 {8E3867AB-8586-11D1-B16A-00C0F0283628} Style = 2 Object.Width = 970 MinWidth = 970 TextSave = "NÚM" Object.ToolTipText = "Activado si está activado Bloq Num" EndProperty BeginProperty Panel3 {8E3867AB-8586-11D1-B16A-00C0F0283628} Object.Width = 5292 MinWidth = 5292 EndProperty BeginProperty Panel4 {8E3867AB-8586-11D1-B16A-00C0F0283628} EndProperty BeginProperty Panel5 {8E3867AB-8586-11D1-B16A-00C0F0283628} Object.Width = 3528 MinWidth = 3528 EndProperty BeginProperty Panel6 {8E3867AB-8586-11D1-B16A-00C0F0283628} Object.Width = 3528 MinWidth = 3528 EndProperty BeginProperty Panel7 {8E3867AB-8586-11D1-B16A-00C0F0283628} Object.Width = 3528 MinWidth = 3528 EndProperty BeginProperty Panel8 {8E3867AB-8586-11D1-B16A-00C0F0283628} Style = 6 Object.Width = 1940 MinWidth = 1940 TextSave = "11/07/2005" Object.ToolTipText = "Fecha actual del sistema" EndProperty BeginProperty Panel9 {8E3867AB-8586-11D1-B16A-00C0F0283628} Style = 5 Object.Width = 1058 MinWidth = 1058 TextSave = "1:59" Object.ToolTipText = "Hora actual del sistema" EndProperty EndProperty End Begin VB.Frame Frame1 Height = 6765 Left = 120 TabIndex = 0 Top = 555 Width = 10065 Begin VB.PictureBox Picturedef AutoRedraw = -1 'True AutoSize = -1 'True Height = 6420 Left = 120 ScaleHeight = 6360 ScaleWidth = 9720 TabIndex = 1 Top = 120 Width = 9780 Begin MSComDlg.CommonDialog CommonDialog1 Left = 360 Top = 360 _ExtentX = 847 _ExtentY = 847 _Version = 393216 End End End Begin ComctlLib.ImageList ImageList1 Left = 0 Top = 7200 _ExtentX = 1005 _ExtentY = 1005 BackColor = -2147483643 ImageWidth = 24 ImageHeight = 24 MaskColor = 12632256 _Version = 327682 BeginProperty Images {0713E8C2-850A-101B-AFC0-4210102A8DA7} NumListImages = 20 BeginProperty ListImage1 {0713E8C3-850A-101B-AFC0-4210102A8DA7} Picture = "Principal.frx":076A Key = "" EndProperty BeginProperty ListImage2 {0713E8C3-850A-101B-AFC0-4210102A8DA7} Picture = "Principal.frx":0E7C Key = "" EndProperty BeginProperty ListImage3 {0713E8C3-850A-101B-AFC0-4210102A8DA7} Picture = "Principal.frx":158E Key = "" EndProperty BeginProperty ListImage4 {0713E8C3-850A-101B-AFC0-4210102A8DA7} Picture = "Principal.frx":1CA0 Key = "" EndProperty BeginProperty ListImage5 {0713E8C3-850A-101B-AFC0-4210102A8DA7} Picture = "Principal.frx":236A Key = "" EndProperty BeginProperty ListImage6 {0713E8C3-850A-101B-AFC0-4210102A8DA7} Picture = "Principal.frx":29EC Key = "" EndProperty BeginProperty ListImage7 {0713E8C3-850A-101B-AFC0-4210102A8DA7} Picture = "Principal.frx":30FE Key = "" EndProperty BeginProperty ListImage8 {0713E8C3-850A-101B-AFC0-4210102A8DA7} Picture = "Principal.frx":3810 Key = "" EndProperty BeginProperty ListImage9 {0713E8C3-850A-101B-AFC0-4210102A8DA7} Picture = "Principal.frx":3F22 Key = "" EndProperty BeginProperty ListImage10 {0713E8C3-850A-101B-AFC0-4210102A8DA7} Picture = "Principal.frx":4634 Key = "" EndProperty BeginProperty ListImage11 {0713E8C3-850A-101B-AFC0-4210102A8DA7} Picture = "Principal.frx":4D46 Key = "" EndProperty BeginProperty ListImage12 {0713E8C3-850A-101B-AFC0-4210102A8DA7} Picture = "Principal.frx":5458 Key = "" EndProperty BeginProperty ListImage13 {0713E8C3-850A-101B-AFC0-4210102A8DA7} Picture = "Principal.frx":5B6A Key = "" EndProperty BeginProperty ListImage14 {0713E8C3-850A-101B-AFC0-4210102A8DA7} Picture = "Principal.frx":627C Key = "" EndProperty BeginProperty ListImage15 {0713E8C3-850A-101B-AFC0-4210102A8DA7} Picture = "Principal.frx":698E Key = "" EndProperty BeginProperty ListImage16 {0713E8C3-850A-101B-AFC0-4210102A8DA7} Picture = "Principal.frx":70A0 Key = "" EndProperty BeginProperty ListImage17 {0713E8C3-850A-101B-AFC0-4210102A8DA7} Picture = "Principal.frx":77B2 Key = "" EndProperty BeginProperty ListImage18 {0713E8C3-850A-101B-AFC0-4210102A8DA7} Picture = "Principal.frx":7EC4 Key = "" EndProperty BeginProperty ListImage19 {0713E8C3-850A-101B-AFC0-4210102A8DA7} Picture = "Principal.frx":85D6 Key = "" EndProperty BeginProperty ListImage20 {0713E8C3-850A-101B-AFC0-4210102A8DA7} Picture = "Principal.frx":8CE8 Key = "" EndProperty EndProperty End Begin VB.Menu Archivo Caption = "&Archivo" Begin VB.Menu nuevo Caption = "&Nuevo Proyecto" End Begin VB.Menu separador0 Caption = "-" End Begin VB.Menu Abreproyecto Caption = "Abrir proyecto..." End Begin VB.Menu separador1 Caption = "-" End Begin VB.Menu Guardar Caption = "Guardar" Shortcut = ^G End Begin VB.Menu Guardarcomo Caption = "Guardar como..." End Begin VB.Menu separador2 Caption = "-" End Begin VB.Menu seleccimpr Caption = "Imprimir..." End Begin VB.Menu separador3 Caption = "-" End Begin VB.Menu Propiedades Caption = "Propiedades" End Begin VB.Menu separador7 Caption = "-" End Begin VB.Menu Cerrar Caption = "Cerrar" End End Begin VB.Menu Insertar Caption = "&Insertar" Begin VB.Menu Horizontal Caption = "Restricción Horizontal..." End Begin VB.Menu separador4 Caption = "-" End Begin VB.Menu nuevoConductor Caption = "&Nueva Fase Símplex..." End Begin VB.Menu duplexHoriz Caption = "Nueva Fase Duplex Horizontal..." End Begin VB.Menu duplexVert Caption = "Nueva Fase Dúplex Vertical..." End Begin VB.Menu separador5 Caption = "-" End Begin VB.Menu triplex1 Caption = "Nueva Fase Tríplex tipo I..." End Begin VB.Menu Triplex2 Caption = "Nueva Fase Tríplex tipo II..." End Begin VB.Menu separayaya Caption = "-" End Begin VB.Menu NuevaCuadruplex Caption = "Nueva Fase Cuádruplex" End Begin VB.Menu separateya Caption = "-" End Begin VB.Menu obstNormal Caption = "Obstaculo Normal..." End Begin VB.Menu obsElevado Caption = "Obstaculo Elevado tipo I..." End Begin VB.Menu obsElevadoII Caption = "Obstaculo Elevado tipo II..." End End Begin VB.Menu Perfiles Caption = "&Perfiles" Begin VB.Menu crearPerfil Caption = "Crear perfil..." End Begin VB.Menu CargarPerfil Caption = "Cargar perfil..." End Begin VB.Menu GrabarPerfil Caption = "Grabar perfil..." End End Begin VB.Menu Herramientas Caption = "&Herramientas" Begin VB.Menu configurar Caption = "Opciones..." End Begin VB.Menu separador6 Caption = "-" End Begin VB.Menu Calcular Caption = "Calcular..." End Begin VB.Menu GenInforme Caption = "Generar Informe en Excel" End End Begin VB.Menu Ayuda Caption = "Ay&uda" Begin VB.Menu Tutor Caption = "Ayuda de MitLoop" End Begin VB.Menu Acercade Caption = "Acerca de" End End Begin VB.Menu Edicion Caption = "Edicion" Visible = 0 'False Begin VB.Menu Modificar Caption = "&Modificar..." End Begin VB.Menu unseparador Caption = "-" End Begin VB.Menu borrar Caption = "&Borrar" End Begin VB.Menu separaya Caption = "-" End Begin VB.Menu Properties Caption = "&Propiedades..." End Begin VB.Menu otroseparador Caption = "-" End Begin VB.Menu subezoom Caption = "Zoom &+" End Begin VB.Menu bajazoom Caption = "Zoom &-" End End Begin VB.Menu Edit Caption = "&Edit" Visible = 0 'False Begin VB.Menu ModifyItem Caption = "&Modify..." End Begin VB.Menu yoseparo1 Caption = "-" End Begin VB.Menu DeleteItem Caption = "&Delete" End Begin VB.Menu yoseparo2 Caption = "-" End Begin VB.Menu ConfigureMe Caption = "&Configure" End Begin VB.Menu yoseparo3 Caption = "-" End Begin VB.Menu ZoomUp Caption = "Zoom &+" End Begin VB.Menu ZoomDown Caption = "Zoom &-" End End Begin VB.Menu File Caption = "File" Visible = 0 'False Begin VB.Menu NewProject Caption = "&New..." End Begin VB.Menu separate1 Caption = "-" End Begin VB.Menu OpenProject Caption = "&Open Project..." End Begin VB.Menu separateya2 Caption = "-" End Begin VB.Menu Save Caption = "&Save" End Begin VB.Menu SaveProjectAs Caption = "Save As..." End Begin VB.Menu separateya3 Caption = "-" End Begin VB.Menu PrintProject Caption = "&Print" End Begin VB.Menu separateya4 Caption = "-" End Begin VB.Menu Configure Caption = "&Configure" End Begin VB.Menu separateya5 Caption = "-" End Begin VB.Menu ExitProgram Caption = "&Exit" End End Begin VB.Menu InsertItem Caption = "&Insert" Visible = 0 'False Begin VB.Menu HorizontalRestr Caption = "New &Horizontal Restriction..." End Begin VB.Menu pepe1 Caption = "-" End Begin VB.Menu InsertSimplex Caption = "New &Simplex Phase..." End Begin VB.Menu pepe2 Caption = "-" End Begin VB.Menu InsertDuplexHoriz Caption = "New &Horizontal Duplex Phase..." End Begin VB.Menu InsertDuplexVertical Caption = "New &Vertical Duplex Phase..." End Begin VB.Menu pepe3 Caption = "-" End Begin VB.Menu InsertTriplexI Caption = "New Type I Triplex Phase..." End Begin VB.Menu InsertTriplexII Caption = "New Type II Triplex Phase..." End Begin VB.Menu pepe4 Caption = "-" End Begin VB.Menu InsertCuadruplex Caption = "New &Cuadruplex Phase" End Begin VB.Menu pepe5 Caption = "-" End Begin VB.Menu InsertNormal Caption = "New &Normal Obstacle" End Begin VB.Menu insertElevatedI Caption = "New Type I &Elevated Obstacle" End Begin VB.Menu insertElevatedII Caption = "New Type II Elevated Obstacle" End End Begin VB.Menu ProfilesMenu Caption = "&Profiles" Visible = 0 'False Begin VB.Menu CreateProfile Caption = "&Create Profile..." End Begin VB.Menu LoadProfile Caption = "&Load Profile..." End Begin VB.Menu SaveProfile Caption = "Save Profile..." End End Begin VB.Menu Tools Caption = "&Tools" Visible = 0 'False Begin VB.Menu Options Caption = "&Options..." End Begin VB.Menu sese1 Caption = "-" End Begin VB.Menu Calculate Caption = "Calculate..." End Begin VB.Menu ReportExcel Caption = "Generate Excel Report" End End Begin VB.Menu HelpMenu Caption = "&Help" Visible = 0 'False Begin VB.Menu Tutorial Caption = "&MitLoop Help" End Begin VB.Menu AboutSoft Caption = "&About" End End End Attribute VB_Name = "Principal" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Option Explicit Public resuelto As Boolean Public hasCancelado As Boolean Public fuerzaXmin As Single Public fuerzaXmax As Single Public fuerzaYmin As Single Public fuerzaYmax As Single ' Variables que van a almacenar si cada una de las etapas está completa o no. Dim lineasOK As Boolean Dim datosGeneralesOK As Boolean Dim TipoLazo As Integer ' 1 -> no hay lazo, 2-> 2 cond, 3-> 3 cond, 4 -> 4 cond Dim arrastrar As Boolean ' Variables que contienen la descripción del proyecto Public autor As String Public fecha As String Public descripcion As String Public ficheroActual As String Public mensaje As String Public LocalPath As String ' Almacena el path de la aplicación Public ActualFile As String ' Almacena el path completo del fichero actual. Public idioma As String ' Contiene el idioma elegido Public zoom As Single ' Variables generales Public NumeroLineas As Integer Dim nuevofichero As Boolean Public factorlineasuelo As Single Public XRaton As Single Public YRaton As Single Dim aux As Variant Public manual As Boolean ' Variables que son configurables según el perfil del usuario Public xmaxima As Single ' Estas variables contienen los límites Public xminima As Single ' del terreno que se ve en el picturebox. Public ymaxima As Single Public yminima As Single Public xmaxorig As Single ' Valores iniciales que se cargan con el perfil Public xminorig As Single Public yminorig As Single Public ymaxorig As Single Public frecuencia As Integer ' Frecuencia de la red. Public distanciaMinimaAlSuelo As Single Public GridHorizontal As Boolean Public GridVertical As Boolean Public incrementox As Single ' Incremento para marcas de eje x Public incrementoy As Single ' Id eje y Public incrementoGridH As Single ' Id grid horizontal Public incrementoGridV As Single ' Id grid vertical Dim numero As Integer ' Contiene el numeroGlobal del primer elemento pulsado Private Sub AboutSoft_Click() About.Show vbModal End Sub Private Sub borrar_click() Dim Numeroelementos As Integer ' Estamos en zona prohibida -> Color = 200 ' Estamos sobre un objeto -> Color = 0 ' Estamos sobre un lazo activo -> Color = 9830400 ' Estamos sobre un lazo pasivo -> Color = 38400 ' Estamos en el color de fondo -> Color = 13158600 If Principal.Picturedef.Point(XRaton, YRaton) = 9830400 Or _ Principal.Picturedef.Point(XRaton, YRaton) = 38400 Then Module1.borralazo XRaton, YRaton ElseIf Principal.Picturedef.Point(XRaton, YRaton) = 0 Then Module1.borraElementos XRaton, YRaton End If End Sub Private Sub Calcular_Click() Dim condlinea1 As Integer Dim condlinea2 As Integer Dim i As Integer condlinea1 = 0 condlinea2 = 0 i = 1 If Module1.totalcond <> 0 Then While (i <= UBound(conductoresPictureBox)) If conductoresPictureBox(i).linea = 1 Then condlinea1 = condlinea1 + 1 Else condlinea2 = condlinea2 + 1 End If i = i + 1 Wend End If i = 1 If Module1.totalcondmultiples <> 0 Then While (i <= UBound(conductoresMultiples)) If conductoresMultiples(i).linea = 1 Then condlinea1 = condlinea1 + 1 Else condlinea2 = condlinea2 + 1 End If i = i + 1 Wend End If i = 1 If Module1.total3cond <> 0 Then While (i <= UBound(tresConductores)) If (tresConductores(i).linea = 1) Then condlinea1 = condlinea1 + 1 Else condlinea2 = condlinea2 + 1 End If i = i + 1 Wend End If i = 1 If Module1.total4cond <> 0 Then While (i <= UBound(cuatroConductores)) If (cuatroConductores(i).linea = 1) Then condlinea1 = condlinea1 + 1 Else condlinea2 = condlinea2 + 1 End If i = i + 1 Wend End If If ((condlinea1 = 0 Or condlinea1 > 1) And (condlinea2 = 0 Or _ condlinea2 > 1) And Not (condlinea1 = 0 And condlinea2 = 0) And Module1.totalLazos >= 1) Then FormCampo.Show vbModal ElseIf (Not ((condlinea1 = 0 Or condlinea1 > 1) And (condlinea2 = 0 Or _ condlinea2 > 1) And Not (condlinea1 = 0 And condlinea2 = 0)) And Module1.totalLazos = 0) Then If Principal.idioma = "Español" Then MsgBox "No hay lineas correctamente definidas.", vbExclamation, "MitLoop" Else MsgBox "There must be at least one line.", vbExclamation, "MitLoop" End If ' Si no hay lazos o bien hay mas de uno, no se calcula y se avisa ElseIf (Module1.totalLazos = 0) Then If Principal.idioma = "Español" Then MsgBox "No hay lazos definidos. El campo obtenido " & _ "será sólo el dedibo a la línea.", vbExclamation, "MitLoop" Else MsgBox "There are no loops defined. The calculated field " & _ "will be generated only by the line.", vbExclamation, "MitLoop" End If FormCampo.Show vbModal ElseIf Len(App.Path & "\calculos") = 0 Then If Principal.idioma = "Español" Then MsgBox "Los ficheros de cálculo están ausentes. No se puede " & _ "calcular el campo", vbCritical, "MitLoop" Else MsgBox "MitLoop cannot find any calculus files. Field will not " & _ "be calculated", vbCritical, "MitLoop" End If End If End Sub Private Sub Calculate_Click() Calcular_Click End Sub Private Sub Cerrar_Click() Dim boton As Integer If Principal.idioma = "Español" Then mensaje = "¿Está seguro de que desea salir?" Else mensaje = "Are you sure you want to exit?" End If boton = MsgBox(mensaje, vbYesNo, "MitLoop") If boton = 6 Then Unload Me End Sub Private Sub Configure_Click() configurar_Click End Sub Private Sub ConfigureMe_Click() configurar_Click End Sub Private Sub ConfigureWindow_Click() configurar_Click End Sub Private Sub CreateProfile_Click() crearPerfil_Click End Sub Private Sub Delete_Click() borrar_click End Sub Private Sub DeleteItem_Click() borrar_click End Sub Private Sub DownWithZoom_Click() bajazoom_Click End Sub Private Sub ExitProgram_Click() Cerrar_Click End Sub Private Sub Guardar_Click() If ficheroActual = "" Then Guardarcomo_Click Else Module1.grabaProyecto (ficheroActual) End If End Sub Private Sub Guardarcomo_Click() If ficheroActual = "" Then With CommonDialog1 .DialogTitle = "Elija el fichero a guardar" .DefaultExt = "*.cal" .Filter = "Ficheros MitLoop (*.cal)|*.cal|Todos los ficheros (*.*)|*.*" .Flags = &H2 .ShowSave End With Module1.grabaProyecto (CommonDialog1.filename) End If End Sub Private Sub HorizontalRestr_Click() FormLineaHorizontal.Show vbModal End Sub Private Sub InsertCuadruplex_Click() Form4cond.Show vbModal End Sub Private Sub InsertDuplexHoriz_Click() Form2condhoriz.Show vbModal End Sub Private Sub InsertDuplexVertical_Click() Form2condvert.Show vbModal End Sub Private Sub insertElevatedI_Click() FormObstaculoElevado.Show vbModal End Sub Private Sub insertElevatedII_Click() FormObstaculoElevadoI.Show vbModal End Sub Private Sub InsertNormal_Click() FormObstaculoNormal.Show vbModal End Sub Private Sub InsertSimplex_Click() FormConductor.Show vbModal End Sub Private Sub InsertTriplexI_Click() Form3cond1.Show vbModal End Sub Private Sub InsertTriplexII_Click() Form3cond2.Show vbModal End Sub Private Sub LoadProfile_Click() CargarPerfil_Click End Sub Private Sub ModidyItem_Click() Modificar_Click End Sub Private Sub Modificar_Click() Picturedef_DblClick End Sub Private Sub ModifyItem_Click() Picturedef_DblClick End Sub Private Sub NewProject_Click() nuevo_Click End Sub Private Sub NuevaCuadruplex_Click() Form4cond.Show vbModal End Sub Private Sub OpenProject_Click() Abreproyecto_Click End Sub Private Sub Options_Click() configurar_Click End Sub Private Sub PrintProject_Click() seleccimpr_Click End Sub Private Sub properties_Click() ' Esta opcion del menu desplegable nos deja modificar las opciones del programa configura.Show vbModal End Sub Private Sub CargarPerfil_Click() ' Hay que abrir el fichero de configuracion. With CommonDialog1 .Filter = "Perfiles de Usuario (*.usr)|*.usr" .DefaultExt = "*.usr" .ShowOpen End With ' Si se ha seleccionado un fichero If (Len(CommonDialog1.filename) <> 0) Then ImportaPerfil (CommonDialog1.filename) ' Se importa el perfil End If End Sub Private Sub configurar_Click() configura.Show vbModal End Sub Private Sub crearPerfil_Click() configura.Show vbModal End Sub Private Sub duplexHoriz_Click() Form2condhoriz.Show vbModal End Sub Private Sub duplexVert_Click() Form2condvert.Show vbModal End Sub Private Sub Form_Load() App.HelpFile = App.Path & "\mithelp.hlp" ' Por defecto no se ha resuelto el problema resuelto = False ' Borramos los ficheros de resultados, si existen de una ejecucion anterior ' Si existen los ficheros de resultados, se borran If Len(Dir$(App.Path & "\calculos\fa.txt")) > 0 Then Kill (App.Path & "\calculos\fa.txt") End If If Len(Dir$(App.Path & "\calculos\campo.txt")) > 0 Then Kill (App.Path & "\calculos\campo.txt") End If ' Inicializamos variables autor = "" fecha = "" descripcion = "" ficheroActual = "" TipoLazo = 1 ' Ponemos el tipo de lazo como no seleccionado frecuencia = 50 ' Valor por defecto de la frecuencia es 50 Hz. ' Inicializamos el valor del zoom zoom = 1 StatusBar1.Panels(4).Text = "Zoom : x" & zoom ' Maximizamos Principal.WindowState = 2 ' Si existe una instancia anterior del programa, cerramos. If App.PrevInstance Then MsgBox "No puede ejecutar dos instancias de MitLoop a la vez.", vbInformation, "Aplicación." End End If ' Obtenemos el path de nuestra aplicacion ChDir App.Path ChDrive App.Path LocalPath = App.Path If Len(LocalPath) > 3 Then LocalPath = LocalPath & "\" ' Mostramos pantalla de presentación Presentacion.Show vbModal Login.Show vbModal If idioma <> "Español" Then configura.ponEnIngles ' Escala en twips. De esta forma vamos independientes de la resolucion ' de la pantalla y del tamaño del monitor. Picturedef.ScaleMode = 1 ' No dejaremos calcular hasta que se den las condiciones Calcular.Enabled = False ' Creamos una imagen en gris como fondo. Picturedef.BackColor = RGB(200, 200, 200) ' Caja que representa el suelo. Picturedef.Line (0, Principal.Picturedef.Width * Module1.lineaSuelo)-(Picturedef.Width, Picturedef.Height), _ RGB(175, 175, 175), BF Principal.Show 'Redibujamos la imagen Module1.RedibujaImagen If Principal.idioma = "Español" Then Principal.StatusBar1.Panels(6).Text = "División eje X = " & Principal.incrementoGridV & " m." Principal.StatusBar1.Panels(7).Text = "División eje Y = " & Principal.incrementoGridH & " m." Else Principal.StatusBar1.Panels(6).Text = "X-axis step = " & Principal.incrementoGridV & " m." Principal.StatusBar1.Panels(7).Text = "Y-axis step = " & Principal.incrementoGridH & " m." End If End Sub Private Sub Abreproyecto_Click() With CommonDialog1 If Principal.idioma = "Español" Then .DialogTitle = "Elija el fichero a abrir" .Filter = "Ficheros MitLoop (*.cal)|*.cal|Todos los ficheros (*.*)|*.*" Else .DialogTitle = "Choose a project to open" .Filter = "MitLoop files (*.cal)|*.cal|All files (*.*)|*.*" End If .DefaultExt = "*.cal" .Flags = &H1000 Or &H4 End With CommonDialog1.ShowOpen ActualFile = CommonDialog1.filename If (Len(ActualFile) > 0) Then ' Borramos el proyecto actual, si es que lo hay borraTodo ' Creamos un array dinámico de strings para almacenar los parametros que se lean Dim parametros() As String ' Leemos el fichero y vamos cargando los datos en las variables del programa Dim fichero As Integer Dim correcto As Boolean Dim leido As String Dim cabecera As String Dim coma As Integer Dim comaanterior As Integer correcto = True fichero = FreeFile If (Len(Dir$(CommonDialog1.filename)) > 0) Then Open CommonDialog1.filename For Input As fichero Line Input #fichero, leido ' Leemos sección de datos generales While (leido <> "Obstaculos") coma = InStr(1, leido, ",") cabecera = Mid(leido, 1, coma - 1) Select Case cabecera Case Is = "Autor" Principal.autor = Trim(Mid(leido, coma + 1, Len(leido))) Case Is = "Fecha" Principal.fecha = Trim(Mid(leido, coma + 1, Len(leido))) Case Is = "Descripcion" Principal.descripcion = Trim(Mid(leido, coma + 1, Len(leido))) End Select Line Input #fichero, leido Wend ' Leemos seccion de Obstaculos Line Input #fichero, leido While (leido <> "Lazos:" And leido <> "FIN") coma = InStr(1, leido, ";") comaanterior = 1 cabecera = Mid(leido, 1, coma - 1) Select Case cabecera Case Is = "1" ' Tipo linea horizontal ReDim parametros(2) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(1) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(2) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) Load FormLineaHorizontal FormLineaHorizontal.Text1 = parametros(1) Module1.añadeLinea Case Is = "2" ' Tipo conductor ReDim parametros(8) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(1) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(2) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(3) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(4) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(5) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(6) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(7) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(8) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) Load FormConductor FormConductor.Text1.Text = parametros(2) FormConductor.Text2.Text = parametros(1) FormConductor.Text3.Text = parametros(3) FormConductor.Text4.Text = parametros(7) FormConductor.Text5.Text = parametros(8) If (parametros(4) = "1") Then FormConductor.Option1.Value = True Else FormConductor.Option2.Value = True End If Module1.añadeConductor Case Is = "3" ' Tipo 2 conductores ReDim parametros(10) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(1) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(2) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(3) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(4) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(5) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(6) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(7) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(8) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(9) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma parametros(10) = Trim(Mid(leido, comaanterior + 1, Len(leido) - comaanterior)) If (parametros(8) = "2condhoriz") Then Load Form2condhoriz Form2condhoriz.Text1 = parametros(1) Form2condhoriz.Text2 = parametros(2) Form2condhoriz.Text3 = parametros(7) Form2condhoriz.Text4 = parametros(3) Form2condhoriz.Text5 = parametros(4) Form2condhoriz.Text6 = parametros(9) Form2condhoriz.Text8 = parametros(10) If parametros(5) = "1" Then Form2condhoriz.Option1.Value = True Else Form2condhoriz.Option2.Value = True End If Module1.añade2condhoriz Else Load Form2condvert Form2condvert.Text1 = parametros(1) Form2condvert.Text2 = parametros(2) Form2condvert.Text3 = parametros(7) Form2condvert.Text4 = parametros(3) Form2condvert.Text5 = parametros(4) Form2condvert.Text6 = parametros(9) Form2condvert.Text8 = parametros(10) If parametros(5) = "1" Then Form2condvert.Option1.Value = True Else Form2condvert.Option2.Value = True End If Module1.añade2condvert End If Case Is = "4" ' Tipo 4 conductores ReDim parametros(13) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(1) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(2) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(3) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(4) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(5) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(6) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(7) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(8) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(9) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(10) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(11) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(12) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma parametros(13) = Trim(Mid(leido, comaanterior + 1, Len(leido) - comaanterior)) Load Form4cond Form4cond.Text1 = parametros(1) Form4cond.Text2 = parametros(2) Form4cond.Text3 = parametros(7) Form4cond.Text4 = parametros(8) Form4cond.Text5 = parametros(3) Form4cond.Text6 = parametros(4) Form4cond.Text7 = parametros(5) Form4cond.Text8 = parametros(6) Form4cond.Text9 = parametros(12) Form4cond.Text13 = parametros(13) If (parametros(9) = "1") Then Form4cond.Option1.Value = True Else Form4cond.Option2.Value = True End If Module1.añade4Cond Case Is = "5" ' Tipo obstaculo normal ReDim parametros(9) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(1) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(2) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(3) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(4) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(5) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(6) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(7) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(8) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma parametros(9) = Trim(Mid(leido, comaanterior + 1, Len(leido) - comaanterior)) Load FormObstaculoNormal FormObstaculoNormal.Text1.Text = parametros(4) FormObstaculoNormal.Text2.Text = parametros(3) FormObstaculoNormal.Text3.Text = parametros(1) FormObstaculoNormal.Text4.Text = parametros(9) FormObstaculoNormal.Text5.Text = parametros(2) FormObstaculoNormal.Text6.Text = parametros(5) Module1.añadeObstaculoNormal Case Is = "6" ' Tipo obstaculo elevado ReDim parametros(11) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(1) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(2) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(3) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(4) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(5) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(6) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(7) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(8) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(9) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(10) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma parametros(11) = Trim(Mid(leido, comaanterior + 1, Len(leido) - comaanterior)) If (parametros(4) = "Verdadero") Then Load FormObstaculoElevadoI FormObstaculoElevadoI.Text1 = parametros(5) FormObstaculoElevadoI.Text2 = parametros(1) FormObstaculoElevadoI.Text3 = parametros(3) FormObstaculoElevadoI.Text5 = parametros(2) FormObstaculoElevadoI.Text6 = parametros(8) FormObstaculoElevadoI.Text7 = parametros(9) FormObstaculoElevadoI.Text8 = parametros(6) Module1.añadeObstaculoElevadoI Else Load FormObstaculoElevado FormObstaculoElevado.Text1 = parametros(5) FormObstaculoElevado.Text2 = parametros(1) FormObstaculoElevado.Text3 = parametros(3) FormObstaculoElevado.Text5 = parametros(2) FormObstaculoElevado.Text6 = parametros(8) FormObstaculoElevado.Text7 = parametros(9) FormObstaculoElevado.Text8 = parametros(6) Module1.añadeObstaculoElevado End If Case Is = "7" ' Tipo 3 conductores ReDim parametros(13) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(1) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(2) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(3) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(4) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(5) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(6) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(7) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(8) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(9) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(10) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(11) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(12) = Trim(Mid(leido, comaanterior + 1, coma - comaanterior - 1)) comaanterior = coma parametros(13) = Trim(Mid(leido, comaanterior + 1, Len(leido) - comaanterior)) If parametros(13) = "Verdadero" Then Load Form3cond2 Form3cond2.Text1 = parametros(1) Form3cond2.Text2 = parametros(2) Form3cond2.Text3 = parametros(6) Form3cond2.Text4 = parametros(7) Form3cond2.Text5 = parametros(3) Form3cond2.Text6 = parametros(4) Form3cond2.Text7 = parametros(5) Form3cond2.Text8 = parametros(11) Form3cond2.Text9 = parametros(12) If (parametros(8) = "1") Then Form3cond2.Option1.Value = True Else Form3cond2.Option2.Value = True End If Module1.añade3cond (True) Else Load Form3cond1 Form3cond1.Text1 = parametros(1) Form3cond1.Text2 = parametros(2) Form3cond1.Text3 = parametros(6) Form3cond1.Text4 = parametros(7) Form3cond1.Text5 = parametros(3) Form3cond1.Text6 = parametros(4) Form3cond1.Text7 = parametros(5) Form3cond1.Text8 = parametros(11) Form3cond1.Text9 = parametros(12) If (parametros(8) = "1") Then Form3cond1.Option1.Value = True Else Form3cond1.Option2.Value = True End If Module1.añade3cond (False) End If End Select Line Input #fichero, leido Wend ' Leemos seccion de Lazos If Not EOF(fichero) Then Line Input #fichero, leido While (leido <> "FIN" And Not EOF(fichero)) coma = InStr(1, leido, ";") comaanterior = 1 cabecera = Mid(leido, 1, coma - 1) Select Case cabecera Case Is = 2 ' Lazo simple ReDim parametros(30) ' Coordenadas de los conductores comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(1) = CSng(Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1))) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(2) = CSng(Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1))) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(3) = CSng(Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1))) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(4) = CSng(Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1))) ' Verdadero si es pasivo comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(5) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Si es pasivo leeremos los valores de Xc, y si es activo ' habrá que obtener las intensidades inyectadas de lazo. If (parametros(5) = "Verdadero") Then ' Vemos si las Xc son en tanto por uno comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(11) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Leemos valor Xc1 comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(6) = CSng(Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1))) ' Ahora leemos los datos del conductor comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(12) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(13) = CSng(Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1))) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(14) = CSng(Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1))) ' Longitud de lazo comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(15) = CSng(Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1))) ' Coste del conductor comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(16) = CSng(Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1))) ' Nombre del poste comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(17) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Altura del poste comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(18) = CSng(Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1))) ' Coste del poste comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(19) = CSng(Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1))) ' Metemos el lazo en el proyecto Load FormLazoPasivo FormLazoPasivo.Text1.Enabled = True FormLazoPasivo.Text1.Text = parametros(1) FormLazoPasivo.Text2.Enabled = True FormLazoPasivo.Text2.Text = parametros(2) FormLazoPasivo.Text3.Enabled = True FormLazoPasivo.Text3.Text = parametros(3) FormLazoPasivo.Text4.Enabled = True FormLazoPasivo.Text4.Text = parametros(4) FormLazoPasivo.Text5.Text = "N/A" FormLazoPasivo.Text5.Enabled = False FormLazoPasivo.Text6.Text = "N/A" FormLazoPasivo.Text6.Enabled = False FormLazoPasivo.Text7.Text = "N/A" FormLazoPasivo.Text7.Enabled = False FormLazoPasivo.Text8.Text = "N/A" FormLazoPasivo.Text8.Enabled = False FormLazoPasivo.Text8.Text = "N/A" FormLazoPasivo.Text15.Text = parametros(12) FormLazoPasivo.Text16.Text = parametros(13) FormLazoPasivo.Text17.Text = parametros(14) FormLazoPasivo.Text18.Text = parametros(15) FormLazoPasivo.Text19.Text = parametros(16) FormLazoPasivo.Text20.Text = parametros(17) FormLazoPasivo.Text21.Text = parametros(18) FormLazoPasivo.Text22.Text = parametros(19) If parametros(11) = "Falso" Then FormLazoPasivo.Option1.Value = True FormLazoPasivo.Text9.Enabled = True FormLazoPasivo.Text9.Text = parametros(6) Else FormLazoPasivo.Option2.Value = True FormLazoPasivo.Text12.Enabled = True FormLazoPasivo.Text12.Text = parametros(6) End If Module1.añadeLazoPasivo Else ' Si estamos aqui es que es un lazo simple y activo. ' Leemos I1 y desfase 1 comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(6) = CSng(Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1))) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(7) = CSng(Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1))) ' Valores en que se optimiza el campo. comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(8) = CSng(Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1))) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(9) = CSng(Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1))) ' I sugerida. comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(10) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Datos del conductor comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(11) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(12) = CSng(Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1))) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(13) = CSng(Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1))) ' Longitud del lazo comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(14) = CSng(Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1))) ' Coste del conductor (€/km) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(15) = CSng(Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1))) ' Nombre del poste comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(16) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Altura del poste comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(17) = CSng(Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1))) ' Coste del poste comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(18) = CSng(Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1))) Load FormLazoActivo ' Coordenadas de los conductores FormLazoActivo.Text5.Enabled = True FormLazoActivo.Text5.Text = CStr(parametros(1)) FormLazoActivo.Text6.Enabled = True FormLazoActivo.Text6.Text = CStr(parametros(2)) FormLazoActivo.Text7.Enabled = True FormLazoActivo.Text7.Text = CStr(parametros(3)) FormLazoActivo.Text8.Enabled = True FormLazoActivo.Text8.Text = CStr(parametros(4)) FormLazoActivo.Text9.Enabled = True FormLazoActivo.Text9.Text = "N/A" FormLazoActivo.Text10.Enabled = True FormLazoActivo.Text10.Text = "N/A" FormLazoActivo.Text11.Enabled = True FormLazoActivo.Text11.Text = "N/A" FormLazoActivo.Text12.Enabled = True FormLazoActivo.Text12.Text = "N/A" FormLazoActivo.Text16.Text = parametros(11) FormLazoActivo.Text17.Text = parametros(12) FormLazoActivo.Text18.Text = parametros(13) FormLazoActivo.Text20.Text = parametros(14) FormLazoActivo.Text21.Text = parametros(15) FormLazoActivo.Text22.Text = parametros(16) FormLazoActivo.Text23.Text = parametros(17) FormLazoActivo.Text24.Text = parametros(18) FormLazoActivo.Text1.Text = parametros(8) FormLazoActivo.Text4.Text = parametros(9) ' Intensidades FormLazoActivo.Text3.Enabled = True FormLazoActivo.Text3.Text = parametros(6) FormLazoActivo.Text13.Enabled = True FormLazoActivo.Text13.Text = parametros(7) FormLazoActivo.Text14.Enabled = False FormLazoActivo.Text14.Text = "N/A" FormLazoActivo.Text15.Enabled = False FormLazoActivo.Text15.Text = "N/A" ' I sugerida FormLazoActivo.Text2.Enabled = True If Len(parametros(10)) > 0 Then FormLazoActivo.Text2.Text = parametros(10) Else FormLazoActivo.Text2.Text = "N/A" End If Module1.añadeLazoActivo End If Case Is = 3 ReDim parametros(30) ' Coordenadas de los conductores comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(1) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(2) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(3) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(4) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(5) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(6) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Verdadero si es pasivo comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(7) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Si es pasivo leeremos los valores de Xc, y si es activo ' habrá que obtener las intensidades inyectadas de lazo. If (parametros(7) = "Verdadero") Then ' Leemos valor Xc1, Xc2, Xc3 comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(12) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(8) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(9) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(10) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Datos del conductor comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(11) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(12) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(13) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(14) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Leemos coste del conductor comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(15) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Nombre del poste comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(16) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Altura del poste comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(17) = CSng(Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1))) ' Coste del poste comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(18) = CSng(Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1))) ' Metemos el lazo en el proyecto Load FormLazoPasivo FormLazoPasivo.Text1.Enabled = True FormLazoPasivo.Text1.Text = CStr(parametros(1)) FormLazoPasivo.Text2.Enabled = True FormLazoPasivo.Text2.Text = CStr(parametros(2)) FormLazoPasivo.Text3.Enabled = True FormLazoPasivo.Text3.Text = CStr(parametros(3)) FormLazoPasivo.Text4.Enabled = True FormLazoPasivo.Text4.Text = CStr(parametros(4)) FormLazoPasivo.Text5.Enabled = True FormLazoPasivo.Text5.Text = CStr(parametros(5)) FormLazoPasivo.Text6.Enabled = True FormLazoPasivo.Text6.Text = CStr(parametros(6)) FormLazoPasivo.Text7.Enabled = False FormLazoPasivo.Text7.Text = "N/A" FormLazoPasivo.Text8.Enabled = False FormLazoPasivo.Text8.Text = "N/A" FormLazoPasivo.Text15.Text = parametros(11) FormLazoPasivo.Text16.Text = parametros(12) FormLazoPasivo.Text17.Text = parametros(13) FormLazoPasivo.Text18.Text = parametros(14) FormLazoPasivo.Text19.Text = parametros(15) FormLazoPasivo.Text20.Text = parametros(16) FormLazoPasivo.Text21.Text = parametros(17) FormLazoPasivo.Text22.Text = parametros(18) If parametros(12) = True Then FormLazoPasivo.Option2.Value = True FormLazoPasivo.Text12.Enabled = True FormLazoPasivo.Text12.Text = CStr(parametros(8)) FormLazoPasivo.Text13.Text = CStr(parametros(9)) FormLazoPasivo.Text14.Text = CStr(parametros(10)) Else FormLazoPasivo.Option1.Value = True FormLazoPasivo.Text9.Enabled = True FormLazoPasivo.Text9.Text = parametros(8) FormLazoPasivo.Text10.Text = parametros(9) FormLazoPasivo.Text11.Text = parametros(10) End If Module1.añadeLazoPasivo Else ' Si estamos aqui es que es un lazo doble con conductor común ' y activo. Leemos I1, I2 y desfases. comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(8) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(9) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(10) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(11) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Punto donde se optimiza comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(12) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(13) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' I sugeridas comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(14) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(15) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Datos del conductor comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(16) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(17) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(18) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Longitud del lazo comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(19) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Coste del conductor comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(20) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Nombre del poste comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(21) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Altura del poste comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(22) = CSng(Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1))) ' Coste del poste comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(23) = CSng(Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1))) Load FormLazoActivo ' Coordenadas de los conductores FormLazoActivo.Text5.Enabled = True FormLazoActivo.Text5.Text = CStr(parametros(1)) FormLazoActivo.Text6.Enabled = True FormLazoActivo.Text6.Text = CStr(parametros(2)) FormLazoActivo.Text7.Enabled = True FormLazoActivo.Text7.Text = CStr(parametros(3)) FormLazoActivo.Text8.Enabled = True FormLazoActivo.Text8.Text = CStr(parametros(4)) FormLazoActivo.Text9.Enabled = True FormLazoActivo.Text9.Text = CStr(parametros(5)) FormLazoActivo.Text10.Enabled = True FormLazoActivo.Text10.Text = CStr(parametros(6)) FormLazoActivo.Text11.Enabled = False FormLazoActivo.Text11.Text = "N/A" FormLazoActivo.Text12.Enabled = False FormLazoActivo.Text12.Text = "N/A" ' Punto donde se optimiza FormLazoActivo.Text1.Text = parametros(12) FormLazoActivo.Text4.Text = parametros(13) ' Datos conductor FormLazoActivo.Text16.Text = parametros(16) FormLazoActivo.Text17.Text = parametros(17) FormLazoActivo.Text18.Text = parametros(18) FormLazoActivo.Text20.Text = parametros(19) FormLazoActivo.Text21.Text = parametros(20) ' Datos poste FormLazoActivo.Text22.Text = parametros(21) FormLazoActivo.Text23.Text = parametros(22) FormLazoActivo.Text24.Text = parametros(23) ' Intensidades FormLazoActivo.Text3.Enabled = True FormLazoActivo.Text3.Text = parametros(8) FormLazoActivo.Text13.Enabled = True FormLazoActivo.Text13.Text = parametros(9) FormLazoActivo.Text14.Enabled = True FormLazoActivo.Text14.Text = parametros(10) FormLazoActivo.Text15.Enabled = True FormLazoActivo.Text15.Text = parametros(11) ' I sugeridas FormLazoActivo.Text2.Enabled = False FormLazoActivo.Text2.Text = parametros(14) FormLazoActivo.Text19.Text = parametros(15) Module1.añadeLazoActivo End If Case Is = 4 ReDim parametros(32) ' Coordenadas de los conductores comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(1) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(2) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(3) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(4) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(5) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(6) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(7) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(8) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Verdadero si es pasivo comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(9) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Si es pasivo leeremos los valores de Xc, y si es activo ' habrá que obtener las intensidades inyectadas de lazo. If (parametros(9) = "Verdadero") Then ' Vemos si usa tanto por uno para compensacion comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(19) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Leemos valor Xc1 y Xc3 comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(10) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(11) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Datos del conductor comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(12) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(13) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(14) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(15) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Leemos coste del conductor comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(16) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Nombre del poste comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(17) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Altura del poste comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(18) = CSng(Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1))) ' Coste del poste comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(19) = CSng(Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1))) ' Metemos el lazo en el proyecto Load FormLazoPasivo FormLazoPasivo.Text1.Enabled = True FormLazoPasivo.Text1.Text = CStr(parametros(1)) FormLazoPasivo.Text2.Enabled = True FormLazoPasivo.Text2.Text = CStr(parametros(2)) FormLazoPasivo.Text3.Enabled = True FormLazoPasivo.Text3.Text = CStr(parametros(3)) FormLazoPasivo.Text4.Enabled = True FormLazoPasivo.Text4.Text = CStr(parametros(4)) FormLazoPasivo.Text5.Enabled = True FormLazoPasivo.Text5.Text = CStr(parametros(5)) FormLazoPasivo.Text6.Enabled = True FormLazoPasivo.Text6.Text = CStr(parametros(6)) FormLazoPasivo.Text7.Enabled = True FormLazoPasivo.Text7.Text = CStr(parametros(7)) FormLazoPasivo.Text8.Enabled = True FormLazoPasivo.Text8.Text = CStr(parametros(8)) FormLazoPasivo.Text15.Text = parametros(12) FormLazoPasivo.Text16.Text = parametros(13) FormLazoPasivo.Text17.Text = parametros(14) FormLazoPasivo.Text18.Text = parametros(15) FormLazoPasivo.Text19.Text = parametros(16) FormLazoPasivo.Text20.Text = parametros(17) FormLazoPasivo.Text21.Text = parametros(18) FormLazoPasivo.Text22.Text = parametros(19) If parametros(19) = False Then FormLazoPasivo.Option1.Value = True FormLazoPasivo.Text9.Enabled = True FormLazoPasivo.Text9.Text = CStr(parametros(10)) FormLazoPasivo.Text10.Enabled = False FormLazoPasivo.Text10.Text = "N/A" FormLazoPasivo.Text11.Enabled = True FormLazoPasivo.Text11.Text = CStr(parametros(11)) Else FormLazoPasivo.Option2.Value = True FormLazoPasivo.Text12.Enabled = True FormLazoPasivo.Text12.Text = CStr(parametros(10)) FormLazoPasivo.Text10.Enabled = False FormLazoPasivo.Text10.Text = "N/A" FormLazoPasivo.Text11.Text = CStr(parametros(11)) End If Module1.añadeLazoPasivo Else ' Si estamos aqui es que es un lazo doble sin conductor común ' y activo. Leemos I1, I2 y desfases. comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(10) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(11) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(12) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(13) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Punto a minimizar campo comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(14) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(15) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Instensidades sugeridas comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(16) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(17) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Datos del conductor comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(18) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(19) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(20) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(21) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Coste del conductor comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(22) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Nombre del poste comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(23) = Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1)) ' Altura del poste comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(24) = CSng(Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1))) ' Coste del poste comaanterior = coma coma = InStr(comaanterior + 1, leido, ";") parametros(25) = CSng(Trim(Mid(leido, comaanterior + 1, _ coma - comaanterior - 1))) Load FormLazoActivo ' Punto a optimizar ' Intensidades sugeridas FormLazoActivo.Text2.Text = parametros(16) FormLazoActivo.Text19.Text = parametros(17) ' Coordenadas de los conductores FormLazoActivo.Text5.Enabled = True FormLazoActivo.Text5.Text = CStr(parametros(1)) FormLazoActivo.Text6.Enabled = True FormLazoActivo.Text6.Text = CStr(parametros(2)) FormLazoActivo.Text7.Enabled = True FormLazoActivo.Text7.Text = CStr(parametros(3)) FormLazoActivo.Text8.Enabled = True FormLazoActivo.Text8.Text = CStr(parametros(4)) FormLazoActivo.Text9.Enabled = True FormLazoActivo.Text9.Text = CStr(parametros(5)) FormLazoActivo.Text10.Enabled = True FormLazoActivo.Text10.Text = CStr(parametros(6)) FormLazoActivo.Text11.Enabled = True FormLazoActivo.Text11.Text = CStr(parametros(7)) FormLazoActivo.Text12.Enabled = True FormLazoActivo.Text12.Text = CStr(parametros(8)) ' Datos del conductor FormLazoActivo.Text16.Text = parametros(18) FormLazoActivo.Text17.Text = parametros(19) FormLazoActivo.Text18.Text = parametros(20) FormLazoActivo.Text20.Text = parametros(21) FormLazoActivo.Text21.Text = parametros(22) ' Datos del poste FormLazoActivo.Text22.Text = parametros(23) FormLazoActivo.Text23.Text = parametros(24) FormLazoActivo.Text24.Text = parametros(25) ' Intensidades FormLazoActivo.Text3.Enabled = True FormLazoActivo.Text3.Text = parametros(10) FormLazoActivo.Text13.Enabled = True FormLazoActivo.Text13.Text = parametros(11) FormLazoActivo.Text14.Enabled = True FormLazoActivo.Text14.Text = parametros(12) FormLazoActivo.Text15.Enabled = True FormLazoActivo.Text15.Text = parametros(13) FormLazoActivo.Text1.Text = parametros(14) FormLazoActivo.Text4.Text = parametros(15) Module1.añadeLazoActivo End If End Select Line Input #fichero, leido Wend Close fichero Unload SelLazo Unload FormLazoActivo Unload FormLazoPasivo End If End If End Sub Private Sub Acercade_Click() About.Show vbModal End Sub Private Sub Form_Resize() ' En funcion de si es un resize manual, maximizado o minimizado ' se hace una cosa, otra o nada. Select Case Principal.WindowState Case Is = 0 ' Si Resize normal (manual) If (Principal.Height > 3000) Then 'Frame1.Height = Principal.Height - Principal.Top - 350 Frame1.Height = StatusBar1.Top - 600 Picturedef.Height = Frame1.Height - 325 'StatusBar1.Panels(3).Text = "Xmin: " & xminima & ", Xmax: " & xmaxima & ", Ymin: " & _ yminima & ", Ymax: " & ymaxima End If If (Principal.Width > 3000) Then Frame1.Width = Principal.Width - 350 Picturedef.Width = Frame1.Width - 200 End If Case Is = 2 ' Si se ha maximizado Frame1.Height = Principal.Height - Principal.StatusBar1.Height - Frame1.Top - 900 Picturedef.Height = Frame1.Height - 350 Frame1.Width = Principal.Width - 300 Picturedef.Width = Frame1.Width - 250 End Select Module1.RedibujaImagen End Sub Private Sub GenInforme_Click() ' Se va a generar un informe con formato Excel. CrearInforme.General End Sub Private Sub GrabarPerfil_Click() grabaPerfil End Sub Private Sub horizontal_Click() FormLineaHorizontal.Show vbModal End Sub Private Sub nuevo_Click() Dim boton As Integer If idioma = "Español" Then mensaje = "Atención, se perderá el espacio de trabajo actual. ¿Continuar?" Else mensaje = "Current Workspace will be lost. Continue?" End If boton = MsgBox(mensaje, vbQuestion + vbYesNo, "MitLoop") If boton = 6 Then borraTodo End Sub Private Sub nuevoConductor_Click() FormConductor.Show vbModal End Sub Private Sub obsElevado_Click() FormObstaculoElevado.Show vbModal End Sub Private Sub obsElevadoII_Click() FormObstaculoElevadoI.Show vbModal End Sub Private Sub obstNormal_Click() FormObstaculoNormal.Show vbModal End Sub Private Sub Picturedef_DblClick() Dim vacio As Variant ' Si hacemos doble click se comprueba si hay algún elemento debajo vacio = Module1.HayElemento(XRaton, YRaton) End Sub Private Sub Picturedef_KeyDown(KeyCode As Integer, Shift As Integer) ' El Keycode de la tecla supr es 46 ' Si hay objeto se borra Dim hasBorrado As Integer If (Principal.Picturedef.Point(Principal.XRaton, Principal.YRaton) = 0 And KeyCode = 46) Then hasBorrado = Module1.borraElementos(XRaton, YRaton) End If End Sub Private Sub Picturedef_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Select Case Button Case Is = 2 ' Si hacemos click con boton derecho sacamos el menú desplegable ' Estamos en el fondo o en zona prohibida If (Principal.Picturedef.Point(X, Y) = 13158600 Or _ Principal.Picturedef.Point(X, Y) = 200) Then Modificar.Enabled = False ModifyItem.Enabled = False borrar.Enabled = False DeleteItem.Enabled = False Properties.Enabled = True ConfigureMe.Enabled = True Else Modificar.Enabled = True ModifyItem.Enabled = True borrar.Enabled = True DeleteItem.Enabled = True Properties.Enabled = False ConfigureMe.Enabled = False End If If Principal.idioma = "Español" Then PopupMenu Edicion, vbPopupMenuLeftButton Else PopupMenu Edit, vbPopupMenuLeftButton End If End Select End Sub Private Sub Picturedef_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim coordx As String Dim coordy As String Dim PosicionComaX As Integer Dim PosicionComaY As Integer ' Aqui tenemos la ultima posicion del puntero del raton en cada momento (en twips). XRaton = X YRaton = Y ' Ponemos en la status bar las coordenadas del raton en metros. coordx = CStr(X * (Principal.xmaxima - Principal.xminima) / Principal.Picturedef.Width + Principal.xminima) coordy = CStr((Principal.Picturedef.Height * Module1.lineaSuelo - Y) * _ (Principal.ymaxima - Principal.yminima) / Principal.Picturedef.Height) PosicionComaX = InStr(1, coordx, ",") PosicionComaY = InStr(1, coordy, ",") ' Posicion en metros coordx = Mid(coordx, 1, PosicionComaX + 2) coordy = Mid(coordy, 1, PosicionComaY + 2) StatusBar1.Panels(5).Text = "X: " & coordx & " Y: " & coordy ' Rutina para pinchar y arrastrar If (arrastrar = True) Then Select Case numero Case Is = 1 ' Tipo linea horizontal Module1.LineasHorizontales(numero).altura = Y End Select End If End Sub Private Sub Picturedef_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) ' Si se hace mouseup, deshabilitamos el drag/drop. arrastrar = False End Sub Private Sub propiedades_Click() FormPropiedades.Show vbModal End Sub Private Sub Save_Click() Guardar_Click End Sub Private Sub SaveProfile_Click() GrabarPerfil_Click End Sub Private Sub SaveProjectAs_Click() Guardarcomo_Click End Sub Private Sub seleccimpr_Click() With CommonDialog1 .DialogTitle = "Seleccionar impresora" .Flags = &H40 .ShowPrinter End With ' Imprimimos el informe (HACER) ' Imprimimos el mapa Printer.Orientation = vbPRORLandscape Principal.PrintForm End Sub Private Sub Tipolazo_Click() SelLazo.Show vbModal End Sub Private Sub subezoom_Click() zoom = zoom * 1.5 If zoom > 10 Then Toolbar1.Buttons(5).Enabled = False If zoom > 0.01 Then Toolbar1.Buttons(6).Enabled = True Dim huy As Integer huy = InStr(1, CStr(zoom), ",") If (huy <> 0) Then StatusBar1.Panels(4).Text = "Zoom: x" & Mid(zoom, 1, huy - 1) & "." & _ Mid(zoom, huy + 1, 1) Else StatusBar1.Panels(4).Text = "Zoom: " & CStr(zoom) End If Module1.RedibujaImagen End Sub Private Sub bajazoom_Click() zoom = zoom / 1.5 If zoom < 0.15 Then Toolbar1.Buttons(6).Enabled = False If zoom < 10 Then Toolbar1.Buttons(5).Enabled = True Dim huy2 As Integer huy2 = InStr(1, CStr(zoom), ",") If (huy2 <> 0) Then StatusBar1.Panels(4).Text = "Zoom: x" & Mid(zoom, 1, huy2 - 1) & "." & _ Mid(zoom, huy2 + 1, 1) Else StatusBar1.Panels(4).Text = "Zoom: x" & CStr(zoom) End If Module1.RedibujaImagen End Sub Private Sub Toolbar1_ButtonClick(ByVal Button As ComctlLib.Button) Dim boton As Integer Select Case Button.Index Dim condlinea1 As Integer Dim condlinea2 As Integer Dim i As Integer Case Is = 1 ' Nuevo fichero nuevo_Click Case Is = 2 ' Abrir fichero Abreproyecto_Click Case Is = 3 ' Guardar fichero Guardar_Click Case Is = 4 ' Separador Case Is = 5 ' Acercar imagen (Zoom +) subezoom_Click Case Is = 6 ' Alejar imagen (Zoom -) bajazoom_Click Case Is = 7 ' Separador Case Is = 8 ' Restriccion horizontal FormLineaHorizontal.Show vbModal Case Is = 9 ' Separador Case Is = 10 ' Nuevo conductor FormConductor.Show vbModal Case Is = 11 ' Nuevo par de conductores horizontales Form2condhoriz.Show vbModal Case Is = 12 ' Nuevo par de conductores verticales Form2condvert.Show vbModal Case Is = 13 ' Nuevo grupo de 3 conductores tipo 1 Form3cond1.Show vbModal Case Is = 14 ' Nuevo grupo de 3 conductores tipo 2 Form3cond2.Show vbModal Case Is = 15 ' Nuevo grupo de 4 conductores Form4cond.Show vbModal Case Is = 16 ' Separador Case Is = 17 ' Nuevo Obstaculo normal FormObstaculoNormal.Show vbModal Case Is = 18 ' Nuevo Obstaculo elevado tipo I FormObstaculoElevadoI.Show vbModal Case Is = 19 ' nuevo obstaculo elevado tipo II FormObstaculoElevado.Show vbModal Case Is = 20 ' Separador Case Is = 21 ' Cálculo Manual Principal.manual = True SelConductor.automatico = False SelConductor.Show vbModal Case Is = 22 ' Optimizacion Principal.manual = False SelConductor.automatico = True SelConductor.Show vbModal Case Is = 23 ' Separador Case Is = 24 ' Gráficas ' Si no hay lineas definidas correctamente, no se puede calcular nada condlinea1 = 0 condlinea2 = 0 i = 1 If Module1.totalcond <> 0 Then While (i <= UBound(conductoresPictureBox)) If conductoresPictureBox(i).linea = 1 Then condlinea1 = condlinea1 + 1 Else condlinea2 = condlinea2 + 1 End If i = i + 1 Wend End If i = 1 If Module1.totalcondmultiples <> 0 Then While (i <= UBound(conductoresMultiples)) If conductoresMultiples(i).linea = 1 Then condlinea1 = condlinea1 + 1 Else condlinea2 = condlinea2 + 1 End If i = i + 1 Wend End If i = 1 If Module1.total3cond <> 0 Then While (i <= UBound(tresConductores)) If (tresConductores(i).linea = 1) Then condlinea1 = condlinea1 + 1 Else condlinea2 = condlinea2 + 1 End If i = i + 1 Wend End If i = 1 If Module1.total4cond <> 0 Then While (i <= UBound(cuatroConductores)) If (cuatroConductores(i).linea = 1) Then condlinea1 = condlinea1 + 1 Else condlinea2 = condlinea2 + 1 End If i = i + 1 Wend End If If condlinea1 = 0 And condlinea2 = 0 Then If Principal.idioma = "Español" Then MsgBox "No hay lineas correctamente definidas.", vbExclamation, "MitLoop" Else MsgBox "There must be at least one line.", vbExclamation, "MitLoop" End If ElseIf ((condlinea1 = 0 Or condlinea1 > 1) And (condlinea2 = 0 Or _ condlinea2 > 1) And Not (condlinea1 = 0 And condlinea2 = 0) And Module1.totalLazos >= 1) Then FormCampo.Show vbModal ElseIf (Not ((condlinea1 = 0 Or condlinea1 > 1) And (condlinea2 = 0 Or _ condlinea2 > 1) And Not (condlinea1 = 0 And condlinea2 = 0)) And Module1.totalLazos = 0) Then If Principal.idioma = "Español" Then MsgBox "No hay lineas correctamente definidas.", vbExclamation, "MitLoop" Else MsgBox "There must be at least one line.", vbExclamation, "MitLoop" End If ' Si no hay lazos se avisa ElseIf (Module1.totalLazos = 0) Then If Principal.idioma = "Español" Then MsgBox "No hay lazos definidos. El campo obtenido " & _ "será sólo el dedibo a la línea.", vbExclamation, "MitLoop" Else MsgBox "There are no loops defined. The calculated field " & _ "will be generated only by the line.", vbExclamation, "MitLoop" End If FormCampo.Show vbModal ElseIf Len(App.Path & "\calculos") = 0 Then If Principal.idioma = "Español" Then MsgBox "Los ficheros de cálculo están ausentes. No se puede " & _ "calcular el campo", vbCritical, "MitLoop" Else MsgBox "MitLoop cannot find any calculus files. Field will not " & _ "be calculated", vbCritical, "MitLoop" End If End If Case Is = 25 ' Separador Case Is = 26 ' Informe Excel ' Si no hay lineas definidas correctamente, no se puede calcular nada condlinea1 = 0 condlinea2 = 0 i = 1 If Module1.totalcond <> 0 Then While (i <= UBound(conductoresPictureBox)) If conductoresPictureBox(i).linea = 1 Then condlinea1 = condlinea1 + 1 Else condlinea2 = condlinea2 + 1 End If i = i + 1 Wend End If i = 1 If Module1.totalcondmultiples <> 0 Then While (i <= UBound(conductoresMultiples)) If conductoresMultiples(i).linea = 1 Then condlinea1 = condlinea1 + 1 Else condlinea2 = condlinea2 + 1 End If i = i + 1 Wend End If i = 1 If Module1.total3cond <> 0 Then While (i <= UBound(tresConductores)) If (tresConductores(i).linea = 1) Then condlinea1 = condlinea1 + 1 Else condlinea2 = condlinea2 + 1 End If i = i + 1 Wend End If i = 1 If Module1.total4cond <> 0 Then While (i <= UBound(cuatroConductores)) If (cuatroConductores(i).linea = 1) Then condlinea1 = condlinea1 + 1 Else condlinea2 = condlinea2 + 1 End If i = i + 1 Wend End If hasCancelado = False If ((condlinea1 = 0 Or condlinea1 > 1) And (condlinea2 = 0 Or _ condlinea2 > 1) And Not (condlinea1 = 0 And condlinea2 = 0) And Module1.totalLazos >= 1) Then ' Si hay lazos vemos cual esta seleccionado Campo.SacaGraficas = False FormCampo.Show vbModal Campo.SacaGraficas = True If hasCancelado = False Then CrearInforme.General End If ElseIf ((condlinea1 = 0 And condlinea2 = 0) Or condlinea1 = 1 Or condlinea2 = 1) Then If Principal.idioma = "Español" Then MsgBox "No hay lineas correctamente definidas.", vbExclamation, "MitLoop" Else MsgBox "There must be at least one line.", vbExclamation, "MitLoop" End If ' Si no hay lazos se avisa ElseIf (Module1.totalLazos = 0) Then If Principal.idioma = "Español" Then MsgBox "No hay lazos definidos. El campo obtenido " & _ "será sólo el dedibo a la línea.", vbExclamation, "MitLoop" Else MsgBox "There are no loops defined. The calculated field " & _ "will be generated only by the line.", vbExclamation, "MitLoop" End If FormCampo.Show vbModal If Principal.hasCancelado = False Then CrearInforme.General End If ElseIf Len(App.Path & "\calculos") = 0 Then If Principal.idioma = "Español" Then MsgBox "Los ficheros de cálculo están ausentes. No se puede " & _ "calcular el campo", vbCritical, "MitLoop" Else MsgBox "MitLoop cannot find any calculus files. Field will not " & _ "be calculated", vbCritical, "MitLoop" End If End If End Select End Sub Sub borraTodo() ' Si existen los ficheros de resultados, se borran If Len(Dir$(App.Path & "\calculos\fa.txt")) > 0 Then Kill (App.Path & "\calculos\fa.txt") End If If Len(Dir$(App.Path & "\calculos\campo.txt")) > 0 Then Kill (App.Path & "\calculos\campo.txt") End If ' Volvemos a poner valores iniciales en variables factorlineasuelo = 0.75 nuevofichero = False NumeroLineas = 1 autor = "" fecha = "" descripcion = "" ficheroActual = "" ' Al poner los contadores a cero, cuando vuelva a meter un elemento de cada tipo ' me hará un redim array(1) que se carga lo que hubiera antes en el array. Module1.elementos = 0 Module1.totalLineasHorizontales = 0 Module1.total3cond = 0 Module1.total4cond = 0 Module1.totalcond = 0 Module1.totalcondmultiples = 0 Module1.totalelevados = 0 Module1.totalnorm = 0 Module1.totalZonas = 0 Module1.totalLazos = 0 Erase Module1.Lazos Erase Module1.zonasProhibidas Erase Module1.conductoresPictureBox Erase Module1.conductoresMultiples Erase Module1.tresConductores Erase Module1.cuatroConductores Erase Module1.NormalesPictureBox Erase Module1.ElevadosPictureBox Erase Module1.LineasHorizontales ' Escala en twips. De esta forma vamos independientes de la resolucion ' de la pantalla y del tamaño del monitor. Picturedef.ScaleMode = 1 ' No dejaremos calcular hasta que se den las condiciones Calcular.Enabled = False ' Creamos una imagen en gris como fondo. 'xpicture = Principal.Picturedef.Width 'ypicture = Principal.Picturedef.Height Picturedef.BackColor = RGB(200, 200, 200) ' Caja que representa el suelo. Picturedef.Line (0, Picturedef.Height * Module1.lineaSuelo)-(Picturedef.Width, Picturedef.Height), RGB(175, 175, 175), BF ' Dibujamos ejes Module1.dibujaEjes End Sub Sub grabaPerfil() Dim numfichAux As Integer Dim auxAux As String ' Abrimos un cuadro de dialogo para recibir el archivo destino With CommonDialog1 .DefaultExt = ".usr" .Filter = "Perfil de Usuario de MitLoop (*.usr)|*.usr|Todos los archivos (*.*)|*.*" .Flags = &H4 Or &H2 .ShowSave End With ' Si el nombre es válido se graba auxAux = Trim(CommonDialog1.filename) If (Len(auxAux) <> 0) Then If (Right(auxAux, 4) <> ".usr") Then auxAux = auxAux & ".usr" ' Y ahora creamos el perfil default.usr numfichAux = FreeFile Open (Principal.LocalPath & "perfiles\Default.usr") For Output As numfichAux Print #numfichAux, "MitLoop 2.0" Print #numfichAux, "anchura," & CStr(Principal.xmaxima - Principal.xminima) Print #numfichAux, "altura," & CStr(Principal.ymaxima - Principal.yminima) Print #numfichAux, "GridH," & CStr(Principal.GridHorizontal) Print #numfichAux, "GridV," & CStr(Principal.GridVertical) Print #numfichAux, "alturaminima," & CStr(Principal.distanciaMinimaAlSuelo) Print #numfichAux, "incrx," & CStr(Principal.incrementox) Print #numfichAux, "incry," & CStr(Principal.incrementoy) Close numfichAux End If End Sub Sub ImportaPerfil(ByVal fichero As String) Dim sigue As Boolean Dim variableLeida As String Dim i As Integer Dim valor As String Dim numfich As Integer sigue = True numfich = FreeFile fichero = Trim(fichero) If (InStr(1, fichero, ":") = 0) Then fichero = Principal.LocalPath & "perfiles\" & Trim(fichero) If (Right(fichero, 4) <> ".usr") Then fichero = fichero & ".usr" Open fichero For Input As numfich ' Leemos la primera línea. Para que sea un fichero válido ' esta primera linea ha de ser la cadena "MitLoop 2.0" Line Input #numfich, aux If aux <> "MitLoop 2.0" Then If idioma = "Español" Then mensaje = "Formato de fichero incorrecto." Else mensaje = "Wrong file format." End If MsgBox mensaje, vbExclamation, "MitLoop" sigue = False Exit Sub End If If (sigue = True) Then ' Abrir el formulario configura. Load configura ' Leer los valores del fichero y meterlos ' en el formulario. While (Not EOF(numfich) And sigue = True) Line Input #numfich, aux i = InStr(1, aux, ",") variableLeida = Mid(aux, 1, i - 1) valor = Mid(aux, i + 1, Len(aux)) Select Case LCase(variableLeida) Case Is = "xminima" configura.Text1.Text = valor Case Is = "yminima" configura.Text2.Text = valor Case Is = "alturaminima" configura.Text3.Text = valor Case Is = "incrx" configura.Text4.Text = valor Case Is = "incry" configura.Text5.Text = valor Case Is = "incrgridv" configura.Text6.Text = valor Case Is = "incrgridh" configura.Text7.Text = valor Case Is = "xmaxima" configura.Text8.Text = valor Case Is = "ymaxima" configura.Text9.Text = valor Case Is = "gridh" If (valor = True) Then configura.Check1.Value = 1 Else configura.Check1.Value = 0 End If Case Is = "gridv" If (valor = True) Then configura.Check2.Value = 1 Else configura.Check2.Value = 0 End If Case Else If idioma = "Español" Then mensaje = "Atención, se perderá el espacio de trabajo actual. ¿Continuar?" Else mensaje = "Everything will be lost. Continue?" End If MsgBox "El fichero de configuracion contiene valores no válidos", vbCritical, "MitLoop" sigue = False borraTodo End Select Wend ' Mostrar el formulario configura. configura.Show vbModal Unload configura ' Y luego meterlos en las variables del ' programa principal. Principal.xminima = CSng(configura.Text1.Text) Principal.xmaxima = CSng(configura.Text8.Text) Principal.yminima = CSng(configura.Text2.Text) Principal.ymaxima = CSng(configura.Text9.Text) Principal.distanciaMinimaAlSuelo = CSng(configura.Text3.Text) Principal.incrementox = CSng(configura.Text4.Text) Principal.incrementoy = CSng(configura.Text5.Text) If (configura.Check1.Value = 1) Then Principal.GridHorizontal = True Else Principal.GridVertical = False End If If (configura.Check2.Value = 1) Then Principal.GridVertical = True Else Principal.GridVertical = False End If Principal.incrementoGridH = configura.Text6.Text Principal.incrementoGridV = configura.Text7.Text End If End Sub Private Sub triplex1_Click() Form3cond1.Show vbModal End Sub Private Sub Triplex2_Click() Form3cond2.Show vbModal End Sub Private Sub ZoomAqui_Click() Module1.ZoomAqui End Sub Private Sub UpWithZoom_Click() subezoom_Click End Sub Private Sub Tutor_Click() modWinHelp.WinHelp hWnd, App.HelpFile, HELP_PARTIALKEY, "" 'CommonDialog1.HelpCommand = cdlHelpContents 'CommonDialog1.HelpFile = App.Path & "\mithelp.hlp" 'CommonDialog1.ShowHelp End Sub Private Sub ZoomDown_Click() bajazoom_Click End Sub Private Sub ZoomUp_Click() subezoom_Click End Sub