Вниз
Скачать: 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.032 c
8-1123614825
Ландграф Павел
2005-08-09 23:13
2006.01.15
Зацените програмку для копирования mp3


14-1135103436
KOSS
2005-12-20 21:30
2006.01.15
Куда делась вкладка Diagram в Delphi for Microsoft Win32 2006?


1-1134324968
markers
2005-12-11 21:16
2006.01.15
Tlabel и WordWrap


3-1132565926
Devmaster
2005-11-21 12:38
2006.01.15
Создать таблицу на основе SQL запроса


2-1134826691
XCoder
2005-12-17 16:38
2006.01.15
Реализация скриптового движка




   Наверх