![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите написать (оформить) функцию
azamatufa © (2010-07-16 13:04:00)Привет Гуру!
1. Чтоб можно было ей передать необязательный параметр ID:integer=0 (по умолчанию 0)
2. Чтобы она возвращала boolean а также TStrings.
Вопрос: нет ли ошибок?
----------- сама функция -----------------
function CheckBase(var list_:TStrings; ID:integer=0):boolean;
begin
Result := false;
if ID <> 0 then
list_.Add('with ID:' + IntToStr(ID))
else
list_.Add('no ID');
end;
------ вызов ----------------------
procedure TMainForm.Button3Click(Sender: TObject);
var
err_list:TStrings;
begin
err_list := TStringList.Create;
if not CheckBase(err_list) then
Memo1.Lines := err_list;
if not CheckBase(err_list,77) then
Memo1.Lines := err_list;
err_list.Free;
end;
--------------------
Спасибо!
И. Павел (2010-07-16 13:56:00) [1]function CheckBase(var list_:TStrings; const ID:integer=0):boolean;
В этом случае будет передана ссылка на ID. И уже по ней будет осуществляться доступ к ID.
А если без const, то в функцию передастся копия ID.
В обоих случаях 4 байта, так что смысла ставить const тут нет.
azamatufa (2010-07-16 13:52:00) [2]
> Anatoly Podgoretsky
я же максимально упрощаю код, чтоб ответчикам было удобно..
А то бывают тут... тонну кода бросают и говорят "у меня это не работает!" )))
Спасибо всем за ответы!
Anatoly Podgoretsky (2010-07-16 13:42:00) [3]> azamatufa (16.07.2010 13:04:00) [0]
Спрашивается зачем нужна функция, если ее значение не меняется?
Медвежонок Пятачок (2010-07-16 13:28:00) [4]результат, вроде, одинаков...
результат одинаков, но его можно и испортить (в твоем случае)
в моем случае испортить нельзя.
Юрий Зотов (2010-07-16 13:26:00) [5]
> azamatufa © (16.07.10 13:23) [2]
Параметр list_ уже и так ссылка. Передавать ссылку по ссылке незачем.
azamatufa (2010-07-16 13:23:00) [6]
> Медвежонок Пятачок
А скажите, в чем различие между:
function CheckBase(list_:TStrings; ID:integer=0):boolean;
function CheckBase(var list_:TStrings; ID:integer=0):boolean;
function CheckBase(var list_:TStrings; const ID:integer=0):boolean;
результат, вроде, одинаков...
Медвежонок Пятачок (2010-07-16 13:06:00) [7]function CheckBase(list_:TStrings; ID:integer=0):boolean;