Форум: "Начинающим";
Текущий архив: 2006.01.15;
Скачать: [xml.tar.bz2];
ВнизИспользование неопределёного числа параметров в процедуре Найти похожие ветки
← →
Bratskiy © (2005-12-28 09:32) [0]Можно ли как-нибудь в Delphi написать функцию или процедуру, которая использует неопределённое число параметров, и из этих самых параметров построить логическое условие оператора While внутри этой самой процедуры или функции? То есть получить конструкцию типа
While (param_1 or param_2 or ... or param_n) do
где param_i - логическое выражение зависящее от i-го параметра.
← →
MBo © (2005-12-28 09:39) [1]параметр - array of Boolean или более общее - array of const
← →
dr D (2005-12-28 09:43) [2]Неопределённое нет. Можно написать определённое или, если параметры однотипные, то вариантный массив.
Можно.
← →
dr D (2005-12-28 09:46) [3]вариантный в смысле динамический, не правильно выразился
← →
Bratskiy © (2005-12-28 09:56) [4]То есть передать в качестве параметра массив, за тем объявить переменную булевского типа,записать её в условие while, в теле цикла использовать цикл со счётчиком который строил бы выражение
param_1 or param_2 or ... or param_n
затем это выражение присваивать к логической переменной. Я правильно понял?
← →
Begin (2005-12-28 09:57) [5]
> dr D (28.12.05 09:43) [2]
> Неопределённое нет.
В процедуру можно передать массив параметров любой длины, в котором все элементы будут произвольного типа...procedure SomeProc(InParm : array of variant);
var i : integer;
begin
for i:= 0 to Length(InParm)-1 do
case varType(InParm[i]) of
varInteger : begin .... end;
varDouble : begin .... end;
{и т. д.}
end
end;
SomeProc([{любое количество любых параметров любого типа}])
← →
Begin (2005-12-28 10:18) [6]
> Bratskiy © (28.12.05 09:56) [4]
> То есть передать в качестве параметра массив, за тем объявить
> переменную булевского типа,записать её в условие while,
> в теле цикла использовать цикл со счётчиком который строил
> бы выражение
> param_1 or param_2 or ... or param_n
> затем это выражение присваивать к логической переменной.
> Я правильно понял?
Именно... :)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.01.15;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.014 c