Konu: Obje klonlama
Merhaba,
Objelerle ilgili bir sorunum var ve bir türlü çözemedim.
DEFINE CLASS Kons AS Custom
vertarih=CTOD("")
isteyen=""
neden=""
teden=""
talan=""
yakin=""
iletisim=""
blok=.F.
bloksayi=0
blokistem=.F.
he=.F.
hesayi=0
heistem=.F.
ihk=.F.
ihksayi=0
ihkistem=.F.
sito=.F.
sitosayi=0
sitoistem=.F.
boyasiz=.F.
boyasizsay=0
doku=.F.
notlar=""
geritarih=CTOD("")
gerinotlar=""
geriblok=0
gerihe=0
gerihk=0
gerisito=0
sonuc=""
sontarih=CTOD("")
sonrapor=.F.
tutanakbas=CTOT("")
ENDDEFINE
şeklinde bir klasım var. Buna uygun olarak bir obje yaratıyorum.
o1=CREATEOBJECT("kons")
Daha sonra bu objenin property lerine değerler atıyorum. Örneğin o1.vertarih=date() gibi. Programımın bir yerinde bu objenin propertyler ve değerleriyle aynı olan bir klon oluşturmam gerekiyor. Bunun için daha önceki sorumda Çetin'in verdiği aşağıdaki procedure'ı kullanmak istediğimde CONTROLS is not an object gibi bir hata mesajı veriyor.
Procedure KlonObject( toSource, toTarget )
Local ix,jx
Local Array aEleman[1]
For ix=1 To Amembers(aEleman, toSource)
Do Case
Case Type( 'toSource.'+aEleman[m.ix] , 1) = 'A'
AddProperty( toTarget, ;
aEleman[m.ix]+'['+Transform(Alen(toSource.&aEleman[m.ix].))+']' )
For jx=1 To Alen(toSource.&aEleman[m.ix].)
If Type('toSource.'+aEleman[m.ix]+'[m.jx]') = 'O'
toTarget.&aEleman[m.ix].[m.jx] = Createobject('Empty')
KlonObject(toSource.&aEleman[m.ix].[m.jx],toTarget.&aEleman[m.ix].[m.jx])
Else
toTarget.&aEleman[m.ix].[m.jx] = toSource.&aEleman[m.ix].[m.jx]
Endif
Endfor
Case Type( 'toSource.'+aEleman[m.ix]) = 'O'
AddProperty( toTarget, aEleman[m.ix], Createobject('Empty') )
KlonObject( toSource.&aEleman[m.ix]. , toTarget.&aEleman[m.ix]. )
Otherwise
AddProperty( toTarget, aEleman[m.ix], Evaluate('toSource.'+aEleman[m.ix]))
Endcase
Endfor
Endproc
Nerede hata yapıyorum bir türlü anlayamadım.
Teşekkürler şimdiden.