Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2007, 20:57   #1
shurik_7866
Пользователь
 
Регистрация: 07.02.2007
Сообщений: 50
По умолчанию Параметры процедур и функций

Извиняюсь за детский вопрос. В Delphi есть возможность в процедурах и функциях использовать необязательные параметры?
shurik_7866 вне форума Ответить с цитированием
Старый 24.09.2007, 21:53   #2
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

есть, они обычным текстом не жирным в подсказках, посмотри в хелпе как она объявлена и будешь знать, например метод BeginDrag имеет такой параметр
да, еще Inc Dec тоже такой имеют
вот как она объявлена
procedure Inc(var X [ ; N: Longint ] );
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 24.09.2007 в 21:57.
mutabor вне форума Ответить с цитированием
Старый 24.09.2007, 22:03   #3
ZhekON
Форумчанин
 
Аватар для ZhekON
 
Регистрация: 24.01.2007
Сообщений: 323
По умолчанию

что значит "необязательные параметры"???
Все параметры можно использовать))) г)
просто ставь и работай, а если это чтото особенное, то что сложно протестировать?...
Всё проще чем вы думаете, нужно только правильно подойти к тому или иному вопросу?
ZhekON вне форума Ответить с цитированием
Старый 24.09.2007, 22:09   #4
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
что значит "необязательные параметры"???
то и значит, можно указать а можно и нет
Inc(a);
Inc(a,2);
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 25.09.2007, 09:08   #5
Aristarh Dark
Форумчанин
 
Регистрация: 07.08.2007
Сообщений: 154
По умолчанию

а задается это так (не помню правда с какой версии появилась возможность):
Код:
procedure SomeProc(FirstParam:Integer;SecondParam:boolean = true);
begin
...
end;
вызовы:
Код:
SomeProc(10); //тут внутри SomeProc SecondParam = True
SomeProc(10,true); //тут внутри SomeProc SecondParam = True
SomeProc(10,false); //тут внутри SomeProc SecondParam = False
Aristarh Dark вне форума Ответить с цитированием
Старый 25.09.2007, 13:24   #6
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Ещё директива Overload
Пример тут http://www.delphibasics.co.uk/RTL.asp?Name=Overload
пыщь
JTG вне форума Ответить с цитированием
Старый 08.12.2007, 20:27   #7
Format C:
Пользователь
 
Регистрация: 11.03.2007
Сообщений: 92
По умолчанию

А как можно описать процедуру, чтобы она через Var параметр возвращала тот тип, который был передан. Как в процедурах Inc/Dec сделано.
Format C: вне форума Ответить с цитированием
Старый 10.12.2007, 06:59   #8
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Код:
...
procedure MyInc (var i: Integer; Step: Integer = 1); overload;
procedure MyInc (var r: Real; Step: Real = 1); overload;
...
implementation
...
procedure MyInc (var i: Integer; Step: Integer = 1); overload;
begin
  i := i + Step;
end;

procedure MyInc (var r: Real; Step: Real = 1); overload;
begin
  r := r + Step;
end;
...
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  r: Real;
begin
  i := 1;
  r := 2.2;
  MyInc (i);
  MyInc (r, 3.5);
  ShowMessage ('i = ' + IntToStr (i) + #13 + 'r = ' + FloatToStr (r));
end;
Sibedir вне форума Ответить с цитированием
Старый 10.12.2007, 19:49   #9
Format C:
Пользователь
 
Регистрация: 11.03.2007
Сообщений: 92
По умолчанию

2Sibedir:
Я так же делаю, но когда вместо, допустим Cardinal передаю переменную типа Byte, мне компилятор сразу говорит, что мол нет такой перегруженной процедуры.
Format C: вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Глобальность функций и процедур rivers Общие вопросы Delphi 5 01.08.2008 20:35
Компиляция SQl процедур nimf БД в Delphi 7 18.04.2008 23:27
использование процедур и функций для работы с массивами.....Паскаль.... КиношкА Помощь студентам 6 13.01.2008 14:23
есть у кого SQL справочник команд процедур и функций, с подробным описанием и примерами? Рустам SQL, базы данных 2 23.11.2007 12:20
Создание процедур Viteef Общие вопросы Delphi 3 11.05.2007 01:25