Вниз
Скачать: CL | DM;

Использование неопределёного числа параметров в процедуре   Найти похожие ветки 

← →
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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.045 c
1-1133968848
Gugle
2005-12-07 18:20
2006.01.15
Исчезает ComboBox из StringGrid-а


14-1134830371
Nic
2005-12-17 17:39
2006.01.15
Воскрешаю старый проект :)


14-1134990696
КаПиБаРа
2005-12-19 14:11
2006.01.15
Посмотрел вчера программу Время


14-1133348949
Post
2005-11-30 14:09
2006.01.15
Framework SDK


2-1135244373
Id
2005-12-22 12:39
2006.01.15
Непонятки с транзакцией




   Наверх