PDA

نسخه کامل مشاهده نسخه کامل : ارسال پارامتر اختیاری



baran_2005
21-11-2009, 12:36
سلام
چطور می توان به یک تابع پارامتر اختیاری ارسال کرد . مثلا اگر ورودی تابع dbgrid و stringgrid باشد و تنها بخواهیم یکی از انها را ارسال کنیم باید چکار کرد . من فعلا با دادن مقدار اولیه nil به ورودی تابع پارامترها را ارسال می کنم مانند زیر

Procedure Draw_Chart(Grid:TDBGrid=nil;TMSGrid:TDBadvGrid=nil );

که در این حالت در صورتی که ورودی ، Grid باشد مشکلی نیست اما اگر TMSGrid باشد در زمان
فراخوانی باید دو پارامتر nil و grid مورد نظر ارسال شود .

حالت اول
Draw_Chart(Grid_Mode);
حالت دوم
Draw_Chart(nil,Grid_Mode);

ایا راه دیگری هم هست ؟

مرد مباح
21-11-2009, 17:59
سلام دوست عزیز و خوش آمدید.

من درست منظور و کاری که میخواهید انجام بدهید رو متوجه نشدم.
ولی تا جایی که فهمیدم شما میتوانید از عملگرهای IS و AS استفاده کنید.
مثال :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

baran_2005
22-11-2009, 09:16
من می خواهم ورودی تابع من تنها یکی باشد که یا dbgrid و یاdbadvgrid . امکان ارسال هر کدام به تنهایی را دارا باشد . و در تعریف تابع هر دو را بشناسد . مثل این که دو تابع هم نام نوشته شده باشد و هر دو یک عمل را انجام می دهند ولی تنها در ورودی با هم متفاوت هستند . من این کار رو تنها برای dbgrid نمی خواهم من تعداد توابع زیادی رو می خواهم از این طریق تغییر دهم و دنبال یک را حل بهینه هستم . ممنون می شم راهنمایی کنید

مرد مباح
22-11-2009, 17:11
خصوصیات ورودیها باید دقیقا مشابه باشه و چون شما دارین از دو کامپوننت مختلف استفاده میکنین. فکرکنم والد اونها بتونه کمکتون کنه.
ولی همون طور که در ÷ست قبلی هم اشاره کردم میتونین از Is , As , Sender استفاده کنید. میتونین به راهنمای دلفی درباره این فرامین مراجعه کنید.

taksavaar
22-11-2009, 21:42
باید دو تا تابع بنویسید ولی بصورت overload:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید