Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Duda Con Propiedades Y Clases
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Duda Con Propiedades Y Clases 
 
Muy buenas tardes,

tengo el siguiente problema que no sé por dónde atajarlo: estoy creando una clase para controlar una placa de prototipos. En ésta clase defino cómo se va a comunicar con el sistema. La placa cuenta con una serie de entradas y salidas, y me gustaría consultar su estado referiéndome a ellas de la siguiente manera desde MMain.Main():

Dim hSistema as new SistemaACDI

hSistema.StartSocket 'Esto inicia la comunicación
Print hSistema.Inputs[0].Status 'Esto imprimiría el estado de la entrada 0...
Print hSistema.Inputs[0].Name 'Se imprime el nombre asociado a esa entrada
Print hSistema.Inputs[1].Status 'Esto haría lo mismo para la entrada 1, etc
Print hSistema.Inputs[1].Name 'etc, etc
 

Bien, he probado a crear una clase que se llama Inputs y en ella hay definida una propiedad que se llama 'Status' y otra 'Name' que retornan el valor de una variable de tipo boolean y otra de tipo string respectivamente. Digamos que la clase SistemaACDI tiene este código:

Public Property Inputs as Input[]
...
Public Sub Inputs_Read () As Input[]
...
End
 

pero esto no resulta, o no sé bien como devolver el estado por medio de Public Sub Inputs_Read() as Input[]

Alguien por favor podría echarme una mano?. La verdad que estoy un poco atascado en este punto, puesto que esto tengo que hacerlo tanto para entradas como para salidas. Uso Gambas3, estoy desarrollando esta aplicación como aplicación para consola.

Gracias de antemano y un saludo,
eleektro
 



 
última edición por eleektro el Domingo, 20 May 2012, 17:02; editado 2 veces 
eleektro - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Duda Con Propiedades Y Clases 
 
Te falta el constructor inicial en la clase SistemaACDI , te dejo como lo haria yo:

1º defino la clase input...
' gambas class file

Property Name As String
Private hname As String

Property status As Boolean
Private hstatus As Boolean

Private Function status_Read() As Boolean

    Return hstatus

End

Private Sub status_Write(Value As Boolean)

    hstatus = Value

End

Private Function Name_Read() As String

    Return hname

End

Private Sub Name_Write(Value As String)

    hname = value

End
 


2º Defino la clase SistemaACDI
Property inputs As Input[]

Private hinputs As New Input[]


'-------------------------------------------------------
' constructor: defino el estado inicial de la clase
'-------------------------------------------------------
Public Sub _new()
    Dim a As Integer
    hInputs.Resize(11) ' tendra como maximo 11 inputs... (de 0 a 10)
    For a = 0 To hinputs.count-1
       hInputs[a] = New Input 'creo las instancias del array...
    Next
    
End



Private Function inputs_Read() As Input[]

    Return hinputs

End

Private Sub inputs_Write(Value As Input[])

    hinputs = value

End

 


3: Funcion Mmain:
' gambas module file

Public Sub Main()
Dim hsistema As New SistemaACDI

hsistema.Inputs[0].Name = "hola"
hsistema.Inputs[0].status = True

hsistema.Inputs[1].Name = "adios"
hsistema.Inputs[1].status = False


Print hsistema.Inputs[0].Name, hsistema.Inputs[0].status
Print hsistema.Inputs[1].Name, hsistema.Inputs[1].status
Print "Numero de inputs: ", hsistema.inputs.count
End
 


InputAplicacion-0.0.1.tar.gz
Descripción:  
Descargar
Nombre del archivo: InputAplicacion-0.0.1.tar.gz
Tamaño: 4.76 KB
Descargado: 48 veces
InputAplicacion-0.0.1.tar.gz
Descripción:  
Descargar
Nombre del archivo: InputAplicacion-0.0.1.tar.gz
Tamaño: 4.76 KB
Descargado: 48 veces
InputAplicacion-0.0.1.tar.gz
Descripción:  
Descargar
Nombre del archivo: InputAplicacion-0.0.1.tar.gz
Tamaño: 4.76 KB
Descargado: 48 veces

 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
última edición por jsbsan el Domingo, 20 May 2012, 19:59; editado 1 vez 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Duda Con Propiedades Y Clases 
 
Muchísimas gracias, me ha quedado claro. Yo para salir del paso habia instanciado la clase Inputs de la siguiente manera en SistemaACDI:

Public Inputs[11] as Inputs
...
Public Sub _new()
...
For i = 0 to 10
Inputs[i] = New Inputs
Next
...
End
 

Pero, a parte de no conseguir exactamente lo que me había yo propuesto, no tenía manera de que cuando se leyera el valor de la propiedad status, status_read() accediera al objeto SerialPort que tengo declarado en la clase padre SistemaACDI.

Con esto como te digo, perfecto. Y de verdad, gracias por contestarme tan concienzudamente, te lo agradezco sobremanera.

Un saludo a tod@s!!
 



 
eleektro - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Propiedades Imagen zepjau Aplicaciones/Fragmentos de Código 1 Miercoles, 20 Julio 2011, 21:31 Ver último mensaje
jguardon
No hay nuevos mensajes Propiedades Virtuales Shell General 0 Jueves, 24 Noviembre 2011, 14:06 Ver último mensaje
Shell
No hay nuevos mensajes Crear Controles En Tiempo De Ejecución: F... jsbsan Programación en otros lenguajes 2 Sabado, 06 Diciembre 2014, 19:17 Ver último mensaje
jsbsan
No hay nuevos mensajes Constantes En Las Clases O Propiedades De ... Shell General 0 Sabado, 25 May 2019, 11:14 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron