در نوشتن تابع فقط میتونم اعلام کنم ، اگر فلان پارامتر براش نوشته نشد ، فلان مقدار رو جایگزین کن ، که مشکل این تیپ کد نویسی این هست که اگر این پارامتر وسط کد کال کننده باشه نمیشه چیزی براش در نظر نگرفت ، که تابع مقدار پیش فرضش رو قرار بده ، پس مجبوریم مقدار ('' خالی) بهش پاس بدیم.
که در این صورت مقدار پیشفرض براش در نظر گرفته نمیشه و مقدار خالی ثبت میشه . چطور میتونیم در اعلان تابع طوری تعریف کنم که وقتی مقدار ('' خالی) بود ، همان مقدار پیشفرض براش در نظر گرفته بشه ؟
مثال زیر رو ببینید :
function test(Name: string = 'All'; Famil: string = 'All';
Password: string = 'NoSet'): Boolean;
var
ini: TIniFile;
begin
try
ini := TIniFile.Create('c:\ini.ini');
try
ini.WriteString('option', 'Name', Name);
ini.WriteString('option', 'Famil', Famil);
ini.WriteString('option', 'Password', Password);
Result := True;
finally
ini.Free;
end;
except
Result := False;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if not test('ali','','12345') then
ShowMessage('Error Write file');
end;

توی این مثال من پارامتر فامیل رو مثلا نمیدونم: اولا نمیتونم متنی ارسال نکنم و نال باشه ، چون قاط میزنه برنامه ، پس مجبورم مقدار خالی بفرستم . در صورتی که خالی هم نمیخام ، میخام مقدار پیشفرض به جای خالی باشه . در این چنین مورد ها سریعترین و کوتاهترین کدی که میشه نوشت چیه؟