Gambas-it

Gambas3 => Domande tecniche => Topic aperto da: takoda - 02 Gennaio 2013, 09:01:47

Titolo: Missing As Classe serial
Inserito da: takoda - 02 Gennaio 2013, 09:01:47
Salve a tutti e buon Anno sto iniziando un progetto presumo molto lungo e sto incontrando problemi alle prime righe come da titolo!
Ho creato una classe che richiama la classe serial di gb.net!


' Gambas class file ModBusRtuSerial

Export

Private SPort As SerialPort
Public MbStatus As String
SPort = New SerialPort() As "SPort"

 
Public Function MbPortOpen(PortName As String, PortBaudRate As Integer, PortDataBit As Integer, PortParity As Integer) As Boolean
  If SPort.RNG = False
    SPort.PortName = PortName
    SPort.Speed = PortBaudRate
    SPort.DataBits = PortDataBit
    SPort.Parity = PortParity
  
    
     SPort.Open()
      
    
  Endif
End


E nel form main creo un istanza


' Gambas class file Fmain

Public Mb1 As ModBusRtuSerial

Public Sub _new()

End

Public Sub Form_Open()
 Mb1.MbPortOpen("tty0", 9600, 8, 2)
 
End
' Gambas class file
Se invece inserisco SPort = New SerialPort() As "SPort" all'interno della funzione ricevo Null object alla chiamata Mb1.MbPortOpen("tty0", 9600, 8, 2)

All' esecuzione del programma l'errore è Missing As  alla chiamata SPort = New SerialPort() As "SPort"
Grazie!
Titolo: Re: Missing As Classe serial
Inserito da: Golia - 02 Gennaio 2013, 10:02:24
Prova andare su "progetto - proprietà - opzioni"

i simboli dei moduli sono public   --SI--
i controlli dei form sono public     --SI--
Titolo: Re: Missing As Classe serial
Inserito da: takoda - 02 Gennaio 2013, 10:33:32
Grazie per la risposta ma le proprietà sono già impostate su public!
Titolo: Re: Missing As Classe serial
Inserito da: vuott - 02 Gennaio 2013, 10:49:46
Ritengo tu debba modificare la prima dichiarazione nella classe principale così:
Codice: gambas [Seleziona]

Public Mb1 As New ModBusRtuSerial


e nella classe secondaria:
Codice: gambas [Seleziona]

Private SPort As New SerialPort As "SPort"

(eliminando ovviamente la successiva riga: SPort = New SerialPort As "SPort". Altrimenti questa riga dovrà essere spostata all'interno della routine !)
Titolo: [RISOLTO]Re: Missing As Classe serial
Inserito da: takoda - 02 Gennaio 2013, 11:14:46
OK grazie sembra funzionare !
Siete mitici!