[Gambas-user] About call sub from string
Olivier Coquet
ocoquet at 3d-phenomen.fr
Thu Jan 7 14:39:02 CET 2021
So, just a little problem,
Function that i call with object.call take tow arguments.
First is a string
Second is an array of strings.
How can I pass this tow arguments in a single array ?
Regards From France
Olivier Coquet
Pure Gambas http server class-work in progress.
Le 07/01/2021 à 13:54, Tobias Boege a écrit :
> On Thu, 07 Jan 2021, Olivier Coquet wrote:
>> Hi all,
>>
>> Is somebody to know if it's possible to call a sub from a stringvar which
>> contain the name of the sub ?
>>
>> I've tryed EVAL but don't work :(
>>
>> exemple of what I want to do:
>>
>> public sub main()
>>
>> Dim mavar as string = "masub()"
>>
>> eval (mavar,"")
>>
>> endsub
>>
>> public sub masub()
>>
>> endsub
>>
> Except the built-in functions, Gambas has no free-standing subroutines,
> it only has methods. To call them you need some kind of object which
> provides a context to the method. Eval does not do that for you.
> [ When you call masub() in Gambas code, that code is always in a class
> and will always be executed in the context of some object. In that call,
> the method name is lexically resolved with respect to the current class
> and implicitly called in the context of the current object, aka Me. ]
>
> Once you have the method name mavar and an object x, you can use
>
> Object.Call(x, mavar) ' optional Array of arguments after mavar
> Object.Call(Me, mavar) ' if you don't have a specific x, use x = Me
>
> Best,
> Tobias
>
More information about the User
mailing list