Jump to content
Juan C.Cilleruelo

Creation of TPythonDelphiVar on-the-fly don't works as expected.

Recommended Posts

I'm having the following problem with TPythonDelphiVar component.

I use the next method to create one instance of this component on-the-fly:

function TForm1.NewVariable(AVarName :string):TPythonDelphiVar;
   Result := TPythonDelphiVar.Create(nil);
   Result.Engine    := PythonEngine;
   Result.Module    := '__main__';
   Result.VarName   := AVarName;

I have a Private variable declared in the TForm1class, like this:

    FVariable :TPythonDelphiVar;

And I use the next code to create on-the-fly my variable QUANTITY:

FVariable := NewVariable('QUANTITY');
FVariable.Value := 1.0;

All seems ok, but when I execute the program, and I try to print the value of QUANTITY:

(Phyton script).


I get the following message error in a message error window: "NameError: 'QUANTITY' is not defined. " 

And in the output memo of the PythonEngine, the next one:

Traceback (most recent call last):
  File "<string>", line 13, in <module>
NameError: name 'QUANTITY' is not defined

I can't understand why creating the TPythonDelphiVar on-the-fly doesn't work while creating the same component in design time works well. 

Do you understand what the problem is?

Share this post

Link to post

The same problem with the class TPythonModule.  If I create in visual form, including it on a form, it works well. If I create it on the fly, the next statements 


FPythonModule.AddDelphiMethod('ComponentCount', ComponentCount, 'ComponentCount');
FPythonModule.AddDelphiMethod('GetPRICE'      , GetPRICE      , 'GetPRICE'      );


run, but when I try to use ComponentCount in my Python Script, does not exist. 


what's happening?   


Share this post

Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now