PDA

View Full Version : فرم ها



pad_kay
سه شنبه 03 دی 1387, 18:30 عصر
با سلام
من در برنامه چندين فرم دارم كه به صورت Run-Time ساخت و سپس استفاده مي شود
چگونه از داخل يك كامپوننت كه برروي فرم اصلي قرار داده ام تشخصيص بدم كه مثلا فرم شماره 3 ساخته شده است و يا فرم شماره 2 از بين رفته است ؟
با تشكر از شما

vcldeveloper
سه شنبه 03 دی 1387, 19:04 عصر
شی Screen دارای خصوصیت Forms هست که همواره لیستی از Form های ساخته شده در برنامه را برمیگرداند. این شی بطور خودکار توسط برنامه ساخته میشه(مثل Application)، و نیازی نیست، خودتان آن را بسازید .

pad_kay
چهارشنبه 04 دی 1387, 10:33 صبح
شی Screen دارای خصوصیت Forms هست که همواره لیستی از Form های ساخته شده در برنامه را برمیگرداند. این شی بطور خودکار توسط برنامه ساخته میشه(مثل Application)، و نیازی نیست، خودتان آن را بسازید .
:خجالت:
شايد من درست نتوانستم سوال خود را شرح دهم
من به چه صورتي در كامپوننت خودم فرمهاي ساخت شده مي شوند و يا از بين مي روند را مديريت كنم به اين صورت كه با هر بار ساخته شدن يا از بين رفتن يك فرم تابع خاصي در كامپوننت اجرا شود
با تشكر از شما

shervin farzin
چهارشنبه 04 دی 1387, 11:00 صبح
سلام
اگه درست منظورتون رو متوجه شده باشم ، ميتونين براي كاري كه ميخواين از دستور
زير استفاده كنين .

if Assigned(form2) then
اگر Form2 ساخته شده باشه و فضا گرفته باشه خروجي تابع Assigned مقدار True خواهد بود
در غير اين صورت False ميشه .
موفق باشيد.

pad_kay
چهارشنبه 04 دی 1387, 11:37 صبح
سلام
اگه درست منظورتون رو متوجه شده باشم ، ميتونين براي كاري كه ميخواين از دستور
زير استفاده كنين .

if Assigned(form2) then
اگر Form2 ساخته شده باشه و فضا گرفته باشه خروجي تابع Assigned مقدار True خواهد بود
در غير اين صورت False ميشه .
موفق باشيد.
با تشكر از شما دوست عزيز
من مي خواهم در كامپوننت متوجه بشم كه يك فرم ساخته شده است يا خير نه در كد برنامه
همانگونه كه مي دانيد در هنگام استفاده از كامپوننت نام فرم مشخص نيست به عبارت ديگر مي خواهم به نوعي مديريت فرمها را درست بگيرم
اگر اطلاعاتي پيرامون Hook كردن فرمها داريد خوشحال مي شوم آنرا در اختيار من قرار دهيد
اگر شما از Vclskin استفاده كرده باشيد بهتر متوجه منظور من مي شويد

pad_kay
شنبه 07 دی 1387, 19:04 عصر
دوستان لطفا من را راهنمايي كنيدبراي ارائه نمودن كامپوننت تنها به اين مورد نياز دارم

arash_ebrahimi_nk
شنبه 07 دی 1387, 23:52 عصر
اگر واقعا روش هایی که دوستان گفتن برای کارتون جواب نمیده میتونید از EnumWindows استفاده کنید برای شمارش تمام پنجره های ساخته شده در کل ویندوز و آنهایی رو که مربوط به پروسه شما هست رو بدست بیارید.

اما در مورد VCLSkin من سورس هاش رو ندیدم ولی اگه میخواهید که قبل از ساخته شدن فرم روش کار کنید باید مدیریت پیام های اون رو در دست بگیرید (لغات کلیدی - WndProc - SetWindowLong - Subclassing)