#define Python TEXT TO _PyExec.Text TEXTMERGE NOSHOW #define EndPython ENDTEXT SET TEXTMERGE DELIMITERS TO "<<", ">>" CLEAR * _Python = CREATEOBJECT("Python.PyServer1") && Mi servidor COM Python _PyExec = CREATEOBJECT("PyExec") && El objeto "ejecutor", global Python print("Hello from Python!!!!") self.report("Hello VFP <<_VFP.Version>> from Python") EndPython RETURN DEFINE CLASS AssignExecutor AS Line Text = "" * El "truco": al asignar algo a _PyExec.Text se llama a _PyExec.Execute con * el texto como parámetro PROCEDURE Text_Assign(sText) This.Text = sText This.Execute(sText) RETURN This PROCEDURE Execute(sText) RETURN ENDDEFINE DEFINE CLASS PyExec AS AssignExecutor PROCEDURE Execute(sPyCode) ? "Acá ejecutaría:" ? sPyCode * _Python.execute(sPyCode) && Llamo a mi servidor COM Python con el código a ejecutar ENDPROC ENDDEFINE *** |