View Full Version : كاربرد BINDEVENT
lm48390
چهارشنبه 15 دی 1389, 14:39 عصر
باسلام
دستور BINDEVENT به چه منظوري استفاده ميگرددو پارامترهاي ورودي ـن چيست. از HELP ويژوال فاكس اصتفاده كردم ولي خوب نفهميدم. از راهنمايي شما ممنون
binyaz2003
پنج شنبه 16 دی 1389, 12:07 عصر
استفاده از اين تابع برميگرده به نياز شما که نياز شما رو برطرف ميکنه يا نه. اين تابع و ساير توابع وابسته از ويرايش 8 ويژوال فاکس پرو اضافه شدن و امکانات زيادي رو در اختيار برنامه نويسان فاکس پرو قرار داد.
در توضيح ساده شما ميتونيد زمانيکه واقعه اي که در شئ يا فرمي مشخص ميکنيد اجرا شد، شما کد خودتون رو اجرا کنيد. براي مثال، مثال خود راهنما رو توضيح ميدم :
با اجراي برنامه زير
PUBLIC oHandler
oHandler=NEWOBJECT("myhandler")
DO (_browser)
BINDEVENT(_SCREEN,"Resize",oHandler,"myresize")
DEFINE CLASS myhandler AS Session
PROCEDURE myresize
IF ISNULL(_obrowser) THEN
UNBINDEVENTS(THIS)
ELSE
_obrowser.left = _SCREEN.Width - _obrowser.width
ENDIF
RETURN
ENDDEFINE
شما ابتدا يک شئ عمومي با تعريف خودتون ميسازيد و بعد برنامه Class Browser رو اجرا ميکنيد سپس با اجراي خط چهارم مشخص ميکنيد که اگر واقعه Resize از شئ _Screen که پنجره اصلي ويژوال فاکس پرو هست صدا زده شد متد myresize از شئ خودتون اجرا بشه و در شئ خودتون هم اگر پنجره Class Browser باز باشه طرف راست پنجره ويژوال فاکس پرو قرار ميديد و اگر نباشه اين بند رو رها ميکنيد. همچنين با تابع RaiseEvent ميتوانيد واقعه اي را خودتون اجرا کنيد مثلا واقعه کليک يک دکمه را اجرا کنيد. همچنين علاوه بر وقايع ميتوانيد بندي هم به Property هاي اشيا قرار دهيد که با تغيير مقدارشان متدي که شما مشخص کرده ايد اجرا شود.
مثلا من در کلاس پوسته بي نياز واقعه Resize فرم جاري را متصل به متدي از کلاس خودم کرده ام تا کارهاي مشخص شده پس از تغيير اندازه فرم براي پوشش پوسته فرم صورت پذيرد.
اميدوارم توضيحات کمک کنند.
Esikhoob
پنج شنبه 16 دی 1389, 18:25 عصر
علاوه بر مواردی که آقای byniaz2003 گفتند ، در VFP9 یک ویژگیهایی به این دستور اضافه شده ، که آن چیز اضافه شده عکس العمل نشان دادن به Event های خود ویندوز است ، مثال بسیار طول و درازی در sample های VFP9 هست.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.