Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.09;
Скачать: CL | DM;

Вниз

Процедура/функция с переменным набором параметров.   Найти похожие ветки 

 
Дельфятник.   (2002-11-26 15:41) [0]

Есть ли в Delphi возможность задавать значения некоторых формальных параметров, чтобы можно было вызывать эту процедуру с разным списком фактических параметров? И если есть, то как должен выглядеть заголовок такой процедуры?


 
MBo ©   (2002-11-26 15:44) [1]

1. overload
2. array of const


 
Smithson ©   (2002-11-26 15:44) [2]

Array of Integer - неограниченное количество интегеров
Array of String - неограниченное количество строк
ну и т.д.
А вот разные параметры - по-моему, можно сделать Array of Variant.


 
Marcus   (2002-11-26 15:44) [3]

Типичный пример - функция Format из SysUtils

function Format(const Format: string; const Args: array of const): string;


 
Дельфятник.   (2002-11-26 15:48) [4]

Спасибо всем. Просто я думал, что в Delphi это можно как в С++ сделать, а оказалось, что нельзя. Ну да ладно.


 
icWasya ©   (2002-11-26 16:19) [5]

ну не совсем нельзя

можно написать так

procedure Pop(a:Integer;Ok:Boolean=false);

а вызывать так

Pop(10);

или

Pop(15,true);



 
Дельфятник   (2002-11-26 16:29) [6]

Спасибо, icWasya! Это то, что надо.
Жаль только, что в качестве значения по умолчанию нельзя подставить программную переменную...


 
Fantasist ©   (2002-11-27 07:30) [7]


> Спасибо, icWasya! Это то, что надо


Вот это да! В начале спрашивают про "разный список фактических параметров", а потом оказывается, что параметры по умолчанию это то, чтот нужно. :) До самого последнего постинга я думал, что человек под "можно как в С++ сделать" понимал: void funct(int i, ...)


 
SottNick ©   (2002-11-27 08:03) [8]

>>Жаль только, что в качестве значения по умолчанию нельзя подставить программную переменную...
а зачем, раз она глобальная (она глобальная?), передавать ее в процедуру вообще? пусть процедура ее сама берет

var c:integer;
procedure Pop(a:Integer;b:Integer=-10000);
begin
if b=-10000
then
b:=c;
end;


 
Дельфятник   (2002-11-29 16:30) [9]

Оказывается, в качестве значения по умолчанию можно подставить типизированную константу, значение которой можно менять в программе, при директиве {$J+}, которая установлена по умолчанию. А этот как раз то, что мне надо.
Спасибо всем.



Страницы: 1 вся ветка

Текущий архив: 2002.12.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
3-27796
Евгений__
2002-11-20 09:28
2002.12.09
В программе не видно Interbase-е исключение


1-27954
normal
2002-11-29 13:43
2002.12.09
Как получить вчерашнюю дату ?


1-28006
TTCustomDelphiMaster
2002-11-29 21:18
2002.12.09
Форма - поток, поток - форма. Запутался совсем.


1-27967
Andy78
2002-11-27 16:35
2002.12.09
MDI StatusBar и Application.OnHint


1-28078
SottNick
2002-11-28 07:18
2002.12.09
Рабочий код перестал работать.