PDA

View Full Version : به چه صورت میشه این تابع رو نوشت؟(تابع ایجاد فرم)



Glamorous
شنبه 31 مرداد 1388, 10:24 صبح
با سلام،
می خوام این تابع رو در یک Unit جدا بنویسم و با استفاده از اون در فرم اصلیم فرم هام رو در یک TabSheet در PageControl نمایش بدم، و در صورتی که مقدار این تابع True بود فرم مورد نظر رو Show کنه و اما تو نوشتن این تابع به مشکل خوردم کسی میتونه کمکی کنه؟
(True بودن این تابع نشون دهنده اینه که کاربر حق دسترسی به این فرم رو داره.)
اینم تابع مورد نظر:
Function SaCreatForm(var Reference; AFormClass: TFormClass; AFormCode: Integer; APageControl: TPageControl = nil): Boolean;
که در اون Reference اسم فرمیه که میخوایم Show کنیم،AformClass کلاسی که فرم از اون مشتق شده، AFormCode تگ مربوط به فرم، APagecontrol هم Parent فرم مورد نظر هست.
برای مثال:

if SaCreatForm(frmAbout, TfrmAbout, frmAbout.tag, MainPageControl) then
;frmAbout.Show

با تشکر.

Glamorous
پنج شنبه 05 شهریور 1388, 09:31 صبح
کسی نمیتونه کمکی کنه؟ )-:

vcldeveloper
پنج شنبه 05 شهریور 1388, 16:59 عصر
شما تعریف TApplication.CreateForm را برداشتید، دو پارامتر به آن اضافه کردید، بدون اینکه در کد خودتان هیچکدام از کارهایی که TApplication.CreateForm انجام میده، انجام داده باشید.

کدی که نوشتید نشون میده که درک درستی از کاری که میخواید انجام بدید، ندارید. اگر هدف تان ساخت فرم باشه، formAbout.Tag را به عنوان پارامتر به تابع ارجاع نمیدید، چون اگر فرم ساخته نشده باشه، formAbout.Tag اصلا معنی نداره، و استفاده از آن باعث میشه یک Access Violation دریافت کنید. از طرف دیگه، کدی که نوشتید، مشخص میکنه که شما فقط میخواید یک فرم خاص را که از قبل ساخته شده، نمایش بدید، چون در کد بالا هیچ چیزی که فرم را بسازه، وجود نداره.

Glamorous
جمعه 06 شهریور 1388, 10:50 صبح
با سلام.
حرفی که شما می زنید کاملا درسته
فرم قبلا ساخته شده و من قصد نمایش فرم رو دارم.
میخوام با این کار مشخصات هر فرمی که در این تابع میذارم رو در یک TabSheet نمایش بده.
برنامه در اصل با یک ActionManager کار میکنه و هر فرمی که ساخته میشه یک Action بسازم و در Tag اون Action یک عدد مخصوص به اون Action نسبت بدم.
من در اصل میخوام در رویداد ActionExecute این تابع رو فراخونی کنم اما برای اینکه مسئله رو زیاد پیچیده نکنم به این شکل نوشتم.
مشکل اینجاست که نمیدونم این تابع رو چطور بنویسم که هر فرم دلخواهی رو نمایش بده.
و بیشتر مشکل در قسمتی که Reference و AFormClass رو میخوام بنویسم یعنی دو پارامتر اول.

Glamorous
یک شنبه 08 شهریور 1388, 14:22 عصر
ممنون دوستان مشکل حل شد. (-: