Hi all,
Welcome again to Foxyland. Kali ini saya ingin membagikan tips mengenai trik untuk menerima dan mengembalikan parameter dalam jumlah yang bisa dikatakan tidak terbatas. Tips ini boleh dibilang bukan hal baru, tapi saya rasa cukup banyak foxer-foxer yang belum tau metode ini.
Selama ini, Anda mungkin bisa memanggil fungsi lain dan mengirimkan parameter dengan cara seperti ini:
my_function (123)
FUNCTION my_function
LPARAMETERS liPara1
{body_of_function}
RETURN liReturnValue
ENDFUNC
Kalau yang dipanggil adalah form, anda bisa menggunakan event Init dari form untuk 'menangkap' parameter dan menggunakan DO FORM {form_name} WITH {para1, para2, ...} untuk memanggil form dan mengirim parameter.
Anda juga bisa menangkap return value dari form dengan meletakkan RETURN {any_value} di Unload event form dan menangkap-nya dengan parameter ...TO... pada perintah DO FORM anda;
DO FORM {form_name} WITH {para1, para2, ...} TO liReturnValue
Nah, sekarang bagaimana caranya kita bisa mengirim dan menerima parameter dalam jumlah yang tak terbatas?
Caranya, yaitu dengan memanfaatkan object dengan class Empty.
Coba lihat code berikut ini:
[vfp code]
LOCAL loMyObject
loMyObject = CREATEOBJECT("Empty")
ADDPROPERTY(loMyObject, 'iParameter1')
ADDPROPERTY(loMyObject, 'iParameter2')
ADDPROPERTY(loMyObject, 'cParaString1')
ADDPROPERTY(loMyObject, 'tJamTanggal')
DO FORM other_form WITH loMyObject
[end of vfp code]
Nah, dengan cara ini, kita bisa menangkap banyak parameter:
[vfp code lagi]
*!* Di init event dari other_form:
LPARAMETERS loParameter
ADDPROPERTY(THISFORM, 'oParameter')
THISFORM.oParameter = loParameter
[end]
Karena object di VFP di-pass sebagai reference, maka dengan cara di atas, apabila di other_form kita membutuhkan parameter tJamTanggal, kita tinggal menggunakan referensi THISFORM.oParameter.tJamTanggal. Demikian juga dengan parameter lainnya.
Mudah-mudahan bermanfaat!
Happy coding!
Foxy
1 comment:
maz foxy kenapa ga bisa pass parameters ya?
muncul pesan unknown member oParameter
Post a Comment