konuka yazdı:bilgiler için çok teşekkürler.
eski sitemizde olan bir bilgi daha vardı:
form üzerinde seçili nesnenin tam adreslemesini
(örnek: form1.pageframe1.page2.grid2.Column1.Header1... gibi) panoya kopyalıyordu, koda yapıştırmak için
onu da hatırlatırsan sevinirim (seviniriz)
Secili nesne(ler) ile is yapmak icin command window ve gecici kod pencereleri (ya da saklanmis olanlari kullanmak), yani "builder" - "kod insa edici" (neyse Turkcesi) yapmak ta ipucu galiba:
VFPde builder yaratip sag klikle gelen builder listenize ekleyebiliyorsunuz. Ancak bunu yapmak yeni baslayanlari asabiliyor. Ya da "builder" kodunuz bazen cok basit veya oraya eklenmeyecek kadar anlik ise yarayacak birsey olabiliyor. Yap ve gec "builder".
Builder icin kilit fonksiyon ASelObj(). Once bunun yukaridaki:
form1.pageframe1.page2.grid2.Column1.Header1
ile ilgisini gosterelim once. Bu kodu formda en az 1 nesne secili iken dogrudan command windowda calistirabilirsiniz:
Visual Fox Pro
ASelObj(aForm,1) && secili nesne(ler)in ait oldugu formun referansini array'e alir
ASelObj(aObjeler) && secili olan tum nesne(ler)in referans(lar)ini array'e alir
_cliptext = stuff( sys(1272,aObjeler[1]), 1, len(aForm1.name), 'thisform')
[Ctrl+V]
Sadece ilk nesnenin tam adi. Arraydeki tum nesneler icin lazim oldugunda biraz modifiye kod kullanabilirsiniz. Command windowda yapmak zorunda degilsiniz. Modi comm diye yeni bir kod penceresi acip oraya kodlarinizi yazabilir, secebilir ve sag klikle "Execute selection" diyebilirsiniz. Kodu sonra saklar ya da atarsiniz (saklar iseniz ayni isi gelecek sefer " do sakladigimkod" gibi cagirabilirsiniz.
Arada kullandigimiz sys(1272, obje) objenin tam referansini aliyor. Yalniz for yerine formun adini yazdigindan o bolumu thisform ile degistiriyoruz. Devam etmeden sys(1272)'nin gucu:
Debugger acin, watch windowa:
sys(1272, sys(1270))
koyun. Debugger gorulebilecek sekilde iken, "calisan" (tasarimdaki formda sys(1270) ise yaramiyor) bir formunuzun uzerinde mouse ile dolasin:)
Neyse AselObj()'ye donelim. Tasarim sirasinda nesne referansi alabilmeniz size ek avantaj sagliyor. Soyle ki, sadece tasarim sirasinda gecerli olan CloneObject ve WriteMethod metodlarini kullanabilirsiniz.