[Gambas-user] RE: Gambas-user Digest, Vol 39, Issue 22

Benoît Minisini gambas at ...1...
Mon Aug 10 01:41:37 CEST 2009


> Following code is my program, its has the "ilegal instruction" bug.
> In the main class
> PUBLIC SUB Main()
>           DIM fd AS FlowData
>           DIM at AS ShiXing
>           at = NEW ShiXing(fd)
>    
> END
>
> In the FlowData class
> PUBLIC CONST ZhengYin AS Integer = 0
> PUBLIC CONST BiJian AS Integer = 1
> PUBLIC CONST JieCai AS Integer = 2
> PUBLIC CONST ShiShen AS Integer = 3
> PUBLIC CONST ShangGuan AS Integer = 4
> PUBLIC CONST PianCai AS Integer = 5
> PUBLIC CONST ZhengCai AS Integer = 6
> PUBLIC CONST QiSha AS Integer = 7
> PUBLIC CONST ZhengGuan AS Integer = 8
> PUBLIC CONST PianYin AS Integer = 9
>
> In the ShiXing Class
> ' Gambas class file
> PRIVATE fd AS FlowData
> STATIC tk0 AS Integer[] = [fd.ShangGuan, fd.JieCai, fd.BiJian, fd.PianCai,
> fd.PianYin, fd.ZhengYin, fd.QiSha, fd.ZhengGuan, fd.JieCai, fd.ZhengYin]
> STATIC tk1 AS Integer[] = [fd.BiJian, fd.JieCai, fd.ShiShen, fd.ShangGuan,
> fd.PianCai, fd.ZhengCai, fd.QiSha, fd.ZhengGuan, fd.PianYin, fd.ZhengYin]
> STATIC tk2 AS Integer[] = [fd.ShiShen, fd.ShangGuan, fd.PianCai,
> fd.ZhengCai, fd.PianYin, fd.ZhengYin, fd.QiSha, fd.ZhengGuan, fd.BiJian,
> fd.JieCai] STATIC tk3 AS Integer[] = [fd.PianCai, fd.QiSha, fd.PianYin,
> fd.ZhengYin, fd.ShangGuan, fd.ZhengCai, fd.JieCai, fd.BiJian, fd.ShiShen,
> fd.ZhengGuan] STATIC tk4 AS Integer[] = [fd.ShangGuan, fd.JieCai,
> fd.BiJian, fd.PianCai, fd.PianYin, fd.ZhengYin, fd.QiSha, fd.ZhengGuan,
> fd.JieCai, fd.ZhengYin] STATIC tk5 AS Integer[] = [fd.BiJian, fd.JieCai,
> fd.ShiShen, fd.ShangGuan, fd.PianCai, fd.ZhengCai, fd.QiSha, fd.ZhengGuan,
> fd.PianYin, fd.ZhengYin] STATIC tk6 AS Integer[] = [fd.ShiShen,
> fd.ShangGuan, fd.PianCai, fd.ZhengCai, fd.PianYin, fd.ZhengYin, fd.QiSha,
> fd.ZhengGuan, fd.BiJian, fd.JieCai] STATIC tk7 AS Integer[] = [fd.PianCai,
> fd.QiSha, fd.PianYin, fd.ZhengYin, fd.ShangGuan, fd.ZhengCai, fd.JieCai,
> fd.BiJian, fd.ShiShen, fd.ZhengGuan] STATIC tk8 AS integer[] =
> [fd.ShangGuan, fd.JieCai, fd.BiJian, fd.PianCai, fd.PianYin, fd.ZhengYin,
> fd.QiSha, fd.ZhengGuan, fd.JieCai, fd.ZhengYin] STATIC tk9 AS Integer[] =
> [fd.BiJian, fd.JieCai, fd.ShiShen, fd.ShangGuan, fd.PianCai, fd.ZhengCai,
> fd.QiSha, fd.ZhengGuan, fd.PianYin, fd.ZhengYin]
>
> PUBLIC SUB _new(fd1 AS FlowData)
>         fd = fd1
>  
>  
> END
> And I don't need to write it  like this, I' ve a perfect solution to write.
>
> Thank You
>
>

Hi,

The error message displayed is incorrect, but you are not allowed to do that:

STATIC tk0 AS Integer[] = [fd.ShangGuan, fd.JieCai, fd.BiJian, ...

Because fd is a dynamic variable, and you are initializing a static one. 
Inside static code, you cannot use any dynamic symbol.

Instead you must write:

STATIC tk0 AS Integer[] = [FlowData.ShangGuan, FlowData.JieCai, 
FlowData.BiJian, ...

Regards,

-- 
Benoît




More information about the User mailing list