ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Forum AtoutFox : Re: _vfp.Eval() - curiosité   

Sujet

rss Flux RSS des derniers messages

Vous devez vous identifier pour pouvoir poser une question ou répondre.

sam. 08 juillet 2017, 12h12
Gregory Adam
Belgique Belgique

atoutfox.public.association

Re: _vfp.Eval() - curiosité

La solution

Il me semble que tout objet créé par _vfp.Eval(), _vfpSetVar() est consideré comme un objet com
Un tableau est passé par valeur

Donc, après la création de l'objet avec _vfp.Eval(), il faut faire comarray(.., 11) pour forcer le passage du tableau par référence

Et la, tout va bien

Il faut bien initialiser naa avec une valeur, sinon naa est traité comme une variable logique

obj = _vfp.Eval([createobject('TestVfpEvalRelation')])
  =comArray(m.obj, 11)  &&


*_______________________________________________________________________________
function TestVfpEval()

  local objResult1, objResult2, obj
  obj = createobject('TestVfpEval')


  local aa[1], naa
naa = 0 && needed
  =m.obj.GetResultObject1(@m.objResult1)

  =m.objResult1.GetArray(@m.aa, @m.naa)
  ?alen(aa) && 5
  ?m.naa    && 5

assert false


endfunc
*_______________________________________________________________________________
define class TestVfpEval as Relation

function GetResultObject1(obj)
  obj = _vfp.Eval([createobject('TestVfpEvalRelation')])
  =comArray(m.obj, 11)  &&
endfunc
enddefine
*_______________________________________________________________________________
define class TestVfpEvalRelation as Relation
function GetArray(aa, naa)
  external array aa
  naa = 5
  dimension aa[m.naa]
  local i
  for i = 1 to m.naa
    aa[m.i] = m.i
  endfor

enddefine
*_______________________________________________________________________________


Journal

Francis Faure pense que ce message est la bonne réponse ou qu'il est utile
Permalink : http://www.atoutfox.org/nntp.asp?ID=0000018334
18 279 messages dans le forum • Liste complète des messages

Publicité

Les pubs en cours :

www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2017.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0