PDA

View Full Version : اشکال در تکثیر فرم : عدم تکثیر متغیرها



MEhdi Sobhani
دوشنبه 15 آذر 1389, 03:12 صبح
با عرض سلام و خسته نباشید
یه برنامه نوشتم که لازم داره یک فرم رو با تمام محتویاتش تکثیر کنه .
فرم کاملا تکثیر میشه اما مشکلی که وجود داره این هست که متغیرها در فرمهایی که بوجود اومدن مشترک هستند .
فرضا متغیری در فرم تعریف کردم به نام MyStr که در هر تغییر تکستباکسم مقدارش برابر مقدار تکستباکس میشه ، وقتی این فرم رو تکثیر میکنم و در فرم جدید مقدار این متغیر رو می گیرم مقدارش مقدار تکستباکسی هست که در فرم قبلی داده شده !!!
به عنوان نمونه پیشفرض ام دی ای دلفی رو اتچ کردم ، در یکی تایپ میکنیم 123 و بعد فرم جدید باز میکنیم و کلید روی فرم رو می زنی و مقدار 123 بر میگرده !!!
لطفا راهنمایی بفرمایید .

با تشکر .

nilidelphi
دوشنبه 15 آذر 1389, 08:54 صبح
دوست عزیز متغییراتو در قسمت private فرم تعریف کن.:قلب::قلب:

Mahmood_M
دوشنبه 15 آذر 1389, 21:12 عصر
شما یک Unit دارید که توش یک کلاس TForm تعریف شده ، این کلاس یک سری خصوصیات و متدها و ... داره که در بدنه ی تعریف کلاس فرم تعریف شدن ، مثلا در قسمت Private یا Public یا ... ، وقتی یک نمونه از این فرم می سازید ، فرم ساخته درواقع یک نمونه از کلاس مربوط به فرم شما هست و همون خصوصیاتی رو داره که فرم اولیه داشته و در بدنه ی کلاسش تعریف شده ، پس برای اینکه فرم ساخته شده متغیر مورد نظر شما رو داشته باشه ، باید متغیر رو در بدنه ی کلاس فرمتون تعریف کنید ، مثلا در قسمت Private که دوستمون اشاره کردن ، شما متغیر رو در Unit تعریف کردید ، هر فرمی که ساخته میشه از همون Unit اولیه استفاده می کنه و Unit جدایی براش در نظر گرفته نمیشه تا متغیر جدیدی هم براش تعریف بشه ...

موفق باشید ...