|
Post by bluatigro on Jul 31, 2022 4:50:35 GMT -5
what i like to do whit struckts :
struckt v3d , x as double , y as double , z as double dim q,q1,q2 as struckt.v3d '''global q = q1 + q2 end operator +( a as struckt.v3d , b as struckt.v3d ) as struckt.v3d dim uit as struckt.v3d ''lokal uit.x = a.x + b.x uit.y = a.y + b.y uit.z = a.z + b.z return uit end operator [code] this idea is based on freebasic see www.freebasic.net how they fix it
|
|
|
Post by Marco Kurvers on Mar 15, 2023 12:50:04 GMT -5
Hey Carl,
I have understand that I can use structs in LB 5. I tried this, but I get an error. The struct has an own color, but LB 5 don't know what a struct is.
I think that's a shame, because I use structs a lot for enumerations and variable constants to limit the use of GLOBAL as much as possible.
An another beautiful technique in LB is making modules. I write in an another file a module with an "SUB Init" where I define the structs for enumerations and properties. I will let you see an example (in dutch):
My example will say: - use a module per file makes the LB program readable and there is no more a problem with double sub and function names. - In LB 4 we must insert each module in the program. - If you see in the module, the Bericht$() function calls the Bericht$() function of an another module. I know that LB don't understand OOP, but you can use the technique in a similar way.
Of course, each variable may have a dot. That's the power of LB that you can make methods that begins with a modulename. Many BASIC dialects don't support dots in a variablename. Unfortunately, a dot after a modulename in a struct name is not possible, see the structs below the example.
--------------------------------------------------------
'modAuto
sub modAuto.Init
struct modAutoEnumKrachtbron,_
Benzine as ushort,_
Diesel as ushort,_
Gas as ushort,_
Elektra as ushort
modAutoEnumKrachtbron.Benzine.struct = 0
modAutoEnumKrachtbron.Diesel.struct = 1
modAutoEnumKrachtbron.Gas.struct = 2
modAutoEnumKrachtbron.Elektra.struct = 3
struct modAutoEnumAutoSoort,_
TFord as ushort,_
Reliant as ushort,_
Coupé as ushort,_
SUV as ushort,_
Cabriolet as ushort,_
DeuxChevaux as ushort
modAutoEnumAutoSoort.TFord.struct = 0
modAutoEnumAutoSoort.Reliant.struct = 1
modAutoEnumAutoSoort.Coupé.struct = 2
modAutoEnumAutoSoort.SUV.struct = 3
modAutoEnumAutoSoort.Cabriolet.struct = 4
modAutoEnumAutoSoort.DeuxChevaux.struct = 5
struct modAutoProperty,_
pAandrijvingen as ushort,_
pAutoSoort as ushort,_
pInhoudLaadruimte as ushort,_
pKrachtbron as ushort,_
pZitplaatsen as ushort
end sub
function modAuto.GetAandrijvingen()
modAuto.GetAandrijvingen = modAutoProperty.pAandrijvingen.struct
end function
sub modAuto.SetAandrijvingen value
modAutoProperty.pAandrijvingen.struct = value
end sub
function modAuto.GetAutoSoort()
modAuto.GetAutoSoort = modAutoProperty.pAutoSoort.struct
end function
sub modAuto.SetAutoSoort value
modAutoProperty.pAutoSoort.struct = value
end sub
function modAuto.GetInhoudLaadruimte()
modAuto.GetInhoudLaadruimte = modAutoProperty.pInhoudLaadruimte.struct
end function
sub modAuto.SetInhoudLaadruimte value
modAutoProperty.pInhoudLaadruimte.struct = value
end sub
function modAuto.GetKrachtbron()
modAuto.GetKrachtbron = modAutoProperty.pKrachtbron.struct
end function
sub modAuto.SetKrachtbron value
modAutoProperty.pKrachtbron.struct = value
end sub
function modAuto.GetZitplaatsen()
modAuto.GetZitplaatsen = modAutoProperty.pZitplaatsen.struct
end function
sub modAuto.SetZitplaatsen value
modAutoProperty.pZitplaatsen.struct = value
end sub
function modAuto.Bericht$()
string$ = modVoertuig.Bericht$()
modAuto.Bericht$ = string$ + chr$(13) + _
"De krachtbron van de auto is " + str$(modAutoProperty.pKrachtbron.struct) + _
chr$(13) + "De soort ervan is " + str$(modAutoProperty.pAutoSoort.struct) + "."
end function
|
|
|
Post by Brandon Parker on Mar 16, 2023 20:29:44 GMT -5
Marco, Structs in LB 5 have simply just not been created yet. Carl will get to them at some point in the future I am sure.
{:0)
Brandon Parker
|
|
|
Post by Marco Kurvers on Mar 18, 2023 8:35:11 GMT -5
Thanks for the answer Brandon.
Then I would have to be patient and continue with version 4. I work with modules and structs to maintain a good structure.
Writing and inserting pieces of program or not, it doesn't matter in version 4 anyway. We have yet to use one listing. If the time comes that we can use version 5, then I will certainly use libraries a lot.
|
|
|
Post by Brandon Parker on Mar 18, 2023 19:43:51 GMT -5
Have you been over to my site? I wrote a tool that provides some functionality you would likely enjoy. Import Architect Forum{:0) Brandon Parker
|
|