View Full Version : ارجاع شی از منو
mehran_337
دوشنبه 27 فروردین 1386, 13:21 عصر
یک منو چگونه می تواند برنامه را با پارامتر شی فراخوانی کند . مثلا منویی باید برنامه x را صدا بزند :
on selection bar 1 of mnu do x
حالا می خوام با پارامتر مثلا with thisform یا مثلا thisform.text1.value را به برنامه x ارسال کنه
با تشکر
binyaz2003
دوشنبه 27 فروردین 1386, 17:16 عصر
باید قبلا اون شیئ رو به منو داده باشید مثلا فرمی که منو توی اون در حال اجرا هست رو غیر از _screen که از همه جا قابل دسترس هست . برای این کار زمانیکه طراح منو فعال هست از منوی view گزینه general options رو انتخاب و در پنجره باز شده گزینه setup رو انتخاب و بعد ok رو انتخاب کنید.این صفحه مثل واقعه init در فرم هست.کد زیر را در آون بنویسید :
PARAMETER oREF
#PREPOPحالا در هر جایی از منو که با فرم یا اشیاء داخل اون کار داشتید از oREF استفاده میکنید مثلا
oREF.Caption="Selected from main mune"
rezaTavak
سه شنبه 28 فروردین 1386, 07:40 صبح
دو حالت هست:
فرم قبلا اجرا شده: باید شی form را public کنید تا از همه جا به آن دسترسی داشته باشید.
فرم قبلا اجرا نشده است: فرم را اجرا میکنید و پارامتر به فرم ارسال میکنید و در متد init از آن پارامترها استفاده می کنید.
binyaz2003
سه شنبه 28 فروردین 1386, 10:08 صبح
ممنون از آقای توکل که بحث و کامل کردند در مورد فراخوانی منو در حالت دوم :
do mymenu.mpr with thisform
mehran_337
سه شنبه 28 فروردین 1386, 15:33 عصر
دو حالت هست:
فرم قبلا اجرا شده: باید شی form را public کنید تا از همه جا به آن دسترسی داشته باشید.
فرم قبلا اجرا نشده است: فرم را اجرا میکنید و پارامتر به فرم ارسال میکنید و در متد init از آن پارامترها استفاده می کنید.
public fname
fname = thisform
در init این دستور را قرار دادم اما fname.name جواب نمی ده.
شاید من بد منظور شما رو متوجه شدم.
rezaTavak
سه شنبه 28 فروردین 1386, 22:04 عصر
فرم را اجرا کرده اید؟
mehran_337
چهارشنبه 29 فروردین 1386, 15:33 عصر
بله اجرا کرده اما واقعا دستوری که نوشتم درسته؟؟؟
rezaTavak
پنج شنبه 30 فروردین 1386, 10:06 صبح
فرمتهان را تنهایی در محیط فاکس اجرا کنید و debug ببینید متغیر تعریف شده.
kia1349
پنج شنبه 30 فروردین 1386, 10:15 صبح
باید با حالت ماکرو متغیر را صدا بزنید
به این الگوریتم نگاه کن
strtedaz=""
For bb=1 To 18
chk1='thisform.check'+Alltrim(Str(bb,2))+'.value'
strtedaz=strtedaz+Str(&chk1,1)
Endfor
IF aya1.tedaz<>strtedaz
Replace aya1.tedaz With strtedaz
ENDIF
حالت ماکرو همون متغیری است که با & شروع شده
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.