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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.08.2009, 18:53   #1
anGeee
Пользователь
 
Аватар для anGeee
 
Регистрация: 18.11.2008
Сообщений: 94
По умолчанию Функция с необязательными параметрами

Можно ли как-то в Делфи описать функию с необязательными параметрами ? То есть, функцию можно вызвать с одним параметром или с двумя...
anGeee вне форума Ответить с цитированием
Старый 04.08.2009, 18:59   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Перегружаемые функции overload или/и установка параметров по умолчанию.
BOBAH13 вне форума Ответить с цитированием
Старый 04.08.2009, 19:16   #3
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Пример:
Код:
Function MyFunction(S: String): Boolean; OverLoad;
Begin
Form1.Caption:=S;
MyFunction:=True;
End;

Function MyFunction(S1, S2: String): Boolean; OverLoad;
Begin
Form1.Caption:=S1;
Form1.Button1.Caption:=S2;
MyFunction:=True;
End;

Procedure TForm1.Button1Click(Sender: TObject);
Begin
MyFunction('Hello World!');
End;

Procedure TForm1.Button2Click(Sender: TObject);
Begin
MyFunction('My Name Is ...', 'Say SomeThing...');
End;
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 04.08.2009, 21:34   #4
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Код:
function MyFunc(param1: integer; param2: integer = 0);
второй параметр может опускаться при вызове
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 вне форума Ответить с цитированием
Старый 07.08.2009, 02:10   #5
Impuls1989
Форумчанин
 
Аватар для Impuls1989
 
Регистрация: 16.08.2008
Сообщений: 276
По умолчанию

По моему он хочет не это. Допустим у нас есть массив заданной длины, и я хочу его заполнить например так: FillIn(1,3,5,7,9) а потом изменить длину массива, и заполнить: FillIn(2,4,6). И чтобы без перегрузок. Я прав?
Я столкнулся с такой проблеммой в C++, но там она легко решалась.
Искусственный интеллект - фигня по сравнению с естественной глупостью
Impuls1989 вне форума Ответить с цитированием
Старый 07.08.2009, 10:34   #6
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от Impuls1989 Посмотреть сообщение
По моему он хочет не это. Допустим у нас есть массив заданной длины, и я хочу его заполнить например так: FillIn(1,3,5,7,9) а потом изменить длину массива, и заполнить: FillIn(2,4,6). И чтобы без перегрузок. Я прав?
Я столкнулся с такой проблеммой в C++, но там она легко решалась.
Для этого созданы массивы.

Edit

Раз такая пъянка, то для такого сделано это array of const а внутри процедуры он интерпритируется как TVarRec, и таким образом можно будет обработать (узнать) тип и значание каждого элемента.

А на счет этого, array of variant, это не массив ?

Последний раз редактировалось BOBAH13; 07.08.2009 в 11:47.
BOBAH13 вне форума Ответить с цитированием
Старый 07.08.2009, 10:46   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Для этого созданы массивы.
Вообще-то для этого создан тип Variant

Код:
  function a(v:array of variant):string;

implementation

  function a;
  var i:byte;
    begin
      for i:=low(v) to high(v) do
       result:=result+v[i];
    end;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
caption:=a(['sdfsf']);
caption:=a(['sdfsf','wqeqwe','uu']);

end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
UPDATE с параметрами QQmb SQL, базы данных 11 06.05.2009 15:20
Запуск с параметрами Xatr Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 12 05.05.2009 17:40
ActiveX с параметрами Chainic Общие вопросы Delphi 2 28.05.2008 16:25
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50
Приложение с параметрами RoadTrain Общие вопросы Delphi 3 08.05.2007 15:37