[Gambas-user] declaring user-defined datatype arrays as PUBLIC

Horst Geisler ho.geisler at ...17...
Fri Mar 4 14:54:14 CET 2005


Bodard Fabien schrieb:

>Le jeudi 3 Mars 2005 22:06, Horst Geisler a écrit :
>  
>
>>Hey there
>>I have Problems with declaring user-defined datatype arrays as _PUBLIC_
>>in Gambas:
>>
>>'#I have this user-defined datatyp
>>clBelegung.class:
>>
>>Public  Name As String
>>Public  Zustand As boolean
>>---------------------------------------------------
>>'# and I declare in another global class File
>>_clGlobal.class:_
>>STATIC PUBLIC  Eingang AS NEW clBelegung[]
>>---------------------------------------------------
>>'#I want use it and its values in different modules like this:
>>_module1.module:_
>>DIM i as INTEGER
>>For i=1 to 7
>>   clGlobal.Eingang[i].Name ="&23" & i
>>   clGlobal.Eingang[i].Zustand = True
>>Next
>>---------------------------------------------------
>>_module2.module:_
>>DIM i as INTEGER
>>For i=1 to 7
>>   Print clGlobal.Eingang[i].Name  & ":" & clGlobal.Eingang[i].Zustand
>>Next
>>---------------------------------------------------
>>
>>If I 'run' this Gambas Project  I get the error messages like
>>
>>'Arrays are forbidden here'  (STATIC PUBLIC  Eingang[] AS NEW clBelegung)
>>or
>>'Syntax error at line ...'  (STATIC PUBLIC  Eingang AS NEW clBelegung[])
>>    
>>
>
>
>In fact you have 2 way :
>first:
>define the array size as static array like
>STATIC PUBLIC  Eingang[6] AS NEW clBelegung
>
>else
>define a dynamic object array and then set each entry with a new class
>
>STATIC PUBLIC  Eingang AS NEW Object[]
>
>in Public Sub _New()
>
>dim i as integer
>For i = 0 to 6
>	Eingang[i] = NEW clBelegung
>next
>
>Fabien Bodard
>
>  
>
Hey Fabien,
thanks for your quick help, :-)
it's a bit tricky for me. I tried to do this, but i'm not very succesfully.

Perhaps i show you my complete code and you can change it directly :-[

*i create following project like i understand your first way you told me*
-------------------------------------------
clBelegung.class
-------------------------------------------
' Gambas class file
PUBLIC Typ AS String
PUBLIC Adresse AS String
PUBLIC Pin AS String
PUBLIC Zustand AS Boolean

-------------------------------------------
clGlobal.class
-------------------------------------------
' Gambas class file
'STATIC PUBLIC Eingang AS NEW clBelegung 'works, as no  array!!

'STATIC PUBLIC Eingang AS NEW clBelegung[8] 'Syntax error

STATIC PUBLIC Eingang[8] AS NEW clBelegung  'Array are forbidden here

-------------------------------------------
module1.module *(startup class)*
-------------------------------------------
' Gambas module file

SUB Main()
DIM i AS Integer
FOR i = 0 TO 4
          'works, as no  array!!
'           clGlobal.Eingang.Typ = "EIN"
'           clGlobal.Eingang.Adresse = "&232"
'           clGlobal.Eingang.Pin = i
'           clGlobal.Eingang.Zustand = 0

          clGlobal.Eingang[i].Typ = "EIN"
          clGlobal.Eingang[i].Adresse = "&232"
          clGlobal.Eingang[i].Pin = i
          clGlobal.Eingang[i].Zustand = TRUE
NEXT
module2.Ausgabe
END SUB

-------------------------------------------
module2.module
-------------------------------------------
' Gambas module file
SUB Ausgabe()
DIM i AS Integer
FOR i = 0 TO 4
      'works, as no  array!!
'       PRINT clGlobal.Eingang.Typ
'       PRINT clGlobal.Eingang.Adresse
'       PRINT clGlobal.Eingang.Pin
'       PRINT clGlobal.Eingang.Zustand

      PRINT clGlobal.Eingang[i].Typ
      PRINT clGlobal.Eingang[i].Adresse
      PRINT clGlobal.Eingang[i].Pin
      PRINT clGlobal.Eingang[i].Zustand
NEXT
END
*
By the second way you recommended, i insert your code like*
-------------------------------------------
clBelegung.class
-------------------------------------------
' Gambas class file
PUBLIC Typ AS String
PUBLIC Adresse AS String
PUBLIC Pin AS String
PUBLIC Zustand AS Boolean

STATIC PUBLIC  Eingang AS NEW Object[]

Public Sub _New()

dim i as integer
For i = 0 to 6
	Eingang[i] = NEW clBelegung
next
end
-------------------------------------------

i tried different ways, but i find no way to use the variable 'Eingang'
from both modules!

Thanks a lot for helping,
Horst




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gambas-basic.org/pipermail/user/attachments/20050304/b0472e1b/attachment.html>


More information about the User mailing list