Execscript() ise yarar ama genelde cozum degil. Nedeni onun calisma ortami memory dahil ozel. O kadar bagimsiz ortamda calisabilecek kodlar icin olabilir.
Onun yerine VFP6SP3'ten beri COMPILE komutu runtime'da gecerli. Bu runtime'da prg, scx, vcx, mnx ... gibi compile edilmesi gereken seyelri yazabilir ve derleyebilirsin demek. Mesela runtime'da bu gecerli:
Visual Fox Pro
text to myClass noshow
define class myButton as CommandButton
procedure click
MessageBox( "Runtime'da yaratildim" )
endproc
enddefine
endtext
StrToFile( m.myClass, 'myClassLib.prg')
compile myClassLib.prg
thisform.NewObject( 'myButton', 'myButton', 'myClassLib.prg')
thisform.myButton.Visible = .t.
Compile form, class vs de var. Yani aslinda VFP'de runtime'da bircok sey yazilabiliyor sadece IDE yok gibi.
Ancak sen anlatirken onlari bir database'de sakladigini soyluyorsun. O database'in icerigini kullanici doldurmuyorsa aslinda sen yazilacaklari design time'da biliyorsun demektir. Amacin ana exe'den ayri tutulacak birsey ise sadece classlarinin oldugu exe yapabilirsin ya da icinden kodlari kaldirilimis bir vcx olarak kullanabilirsin. Ana bu exeden veya vcx'ten class yaratir.
Ya da illa database olsun diyorsan, bir alaninda kodun kendisini degil, compile edilmis halini de tutabilirsin (scx dosyalarindaki objcode fieldi gibi).
ExecScript'in yan etkilerini anlamadan kullanmaya kalkma bence. Onu ilk kez harika bir fikir olarak gorup uyguladigimda burnum surtuldu. Ben de o zaman ogrendim zaten onun calisma ortaminin nasil kendisine ozgun oldugunu.