PDA

View Full Version : چگونه متدها و رویدادهای _screenو _vfp را هدایت کنیم؟



rezaTavak
سه شنبه 22 اردیبهشت 1383, 21:14 عصر
سلام

کسی این رویدادها را هدایت کرده؟

مثلا _Screen.Resize

rezaTavak
یک شنبه 27 اردیبهشت 1383, 22:16 عصر
سلام

هیچ جوابی نبود؟

راستی اگه متد WriteMethod را قبول میکرد مشکل حل بود ها!

kia1349
دوشنبه 28 اردیبهشت 1383, 07:01 صبح
راستش من دقیقا منظورتونو متوجه نشدم

rezaTavak
دوشنبه 28 اردیبهشت 1383, 18:41 عصر
سلام


ببینید ما یک فرم را خیلی راحت رویدادهاش و متدها را عوض میکنیم. خب _SCREEN هم نوعی فرم دارای متد و رویداد است. مثلا Resize خب حالا می خواهیم وقتی پنجره اصلی برنامه یعنی _SCREEN تغییر سایز داد یک کاری هم برای ما انجام شود مثلا جای یک فرم عوض شود. نمی دونم منظورم را رسانیدم؟

kia1349
سه شنبه 29 اردیبهشت 1383, 08:07 صبح
اول از همه در فرمتان autocenter را برابر با .t. قرار دهید بعد کد زیر را در قالب یک prg در اول برنامه هایتان اجرا کنید

_Screen.AddObject("oResizer", "Resizer")
DEFINE CLASS Resizer AS Custom
oScreen = _Screen
PROCEDURE oScreen.Resize
IF _screen.WindowState <> 1 && Main VFP Window isn't minimized
FOR i=1 TO _screen.FormCount
IF _screen.Forms(i).AutoCenter
_screen.Forms(i).AutoCenter = .F.
_screen.Forms(i).AutoCenter = .T.
ENDIF
ENDFOR
ENDIF
ENDPROC
ENDDEFINE
حالا صفحه را با موس resize کنید و حالشو ببرید
نکته:به خاطر داشته باشید که اجرای این حالت با استفاده از فانکشن bindevent() در vfp8 و VFP8SP1 کار نمیکنه چون اولین باگ کشف شده در VFP8SP1 اشکالیست که مربوط به همین فانکشن میشه ولی با روشی که در بالا برایتان نوشتم میتونین این کارو خیلی راحت انجام بدین

rezaTavak
سه شنبه 29 اردیبهشت 1383, 20:52 عصر
سلام


مرسی :تشویق: