PDA

View Full Version : سوال: مشکل کار با ماژول در ارتباط با آبجکتها



علیرضا حجت
دوشنبه 25 بهمن 1395, 06:40 صبح
سلام.
مشکل اینه . دوتا فرم دارم با یک ماژول . داخل ماژول یک سری تغییرات اعمال میشه برای آبجکتهای فرم 2 مثل تغییر تکست یا اضافه کردن آبجکت جدید.
وقتی فرم 2 را شروع اجرای برنامه میزارم مشکلی نیست و با فراخوانی ساب موردنظر در ماژول همه کار انجام میشه.

اما ...
وقتی فرم یک رو اول لود میکنم و توسط کلیک فرم 2 رو باز میکنم و فرم یک رو میبندم و بعد ماژول رو اجرا میکنم بدون خطا کار میکنه اما در واقع هیچ تغییری در فرم 2 نمیتونه ایجاد کنه مثل اینکه کلا ساب اجرا نشده باشه اما من دیدم که ساب کامل اجرا میشه !

من مشکل رو با اوردن ساب در زیر فرم 2 میتونم حل کنم ولی جای سوال برام هست چرا باز شدن بعنوان اولین فرم و یا فرم دوم میتونه تاثیر در کار ماژول داشته باشه.؟

پیشاپیش تشکر میکنم از دوستان حرفه ای امیدوارم سوال واضح باشه

مهرداد صفا
یک شنبه 08 اسفند 1395, 11:24 صبح
سلام دوست عزیز.
به احتمال قریب به یقین شما دارید با دو instance مجزا از کلاس Form2 کار می کنید! و حدث می زنم داخل ماجول از default instance استفاده می کنید ولی موقع نمایشForm2 با کلیدواژه new یک نمونه از این کلاس ایجاد می کنید.
راهکار:
- اگر داخل ماجول بدون ساخت نمونه جدید و فقط با اسم فرم بهش دسترس دارید، هنگام نمایش فرم هم همین کار رو بکنید.

Form2.Show()
- با هر روشی که فرم رو نمایش داده اید، همیشه میتونید با ارسال نام فرم به متود
Application.OpenForms به همون نمونه ای که قبلا ساختید و نمایش دادید دسترسی داشته باشید.

علیرضا حجت
جمعه 20 اسفند 1395, 03:22 صبح
سلام دوست عزیز.
به احتمال قریب به یقین شما دارید با دو instance مجزا از کلاس Form2 کار می کنید! و حدث می زنم داخل ماجول از default instance استفاده می کنید ولی موقع نمایشForm2 با کلیدواژه new یک نمونه از این کلاس ایجاد می کنید.
راهکار:
- اگر داخل ماجول بدون ساخت نمونه جدید و فقط با اسم فرم بهش دسترس دارید، هنگام نمایش فرم هم همین کار رو بکنید.

Form2.Show()
- با هر روشی که فرم رو نمایش داده اید، همیشه میتونید با ارسال نام فرم به متود
Application.OpenForms به همون نمونه ای که قبلا ساختید و نمایش دادید دسترسی داشته باشید.

تشکر از پاسخگویی خوبتون.
من چون در ایمیل جواب شمار رو گرفتم دیر به سایت مراجعه کردم
با حدس شما من یادم افتاد که از دو کلاس مختلف دارم استفاده میکنم یکی فرم ویندوزی و یکی فرم مترو . احتمالا این مشکل از همین جریان ناشی شده.
ممنون