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

Вниз

Вопрос: передача параметров функции в Delphi   Найти похожие ветки 

 
PLP   (2004-01-15 19:02) [0]

Можно ли в Делфе в функцию передавать переменное число параметров, тип каждого из которых может немного варьироваться - (т.е. заранее неизвестно сколько переменных, каких типов и в каком порядке передается)?

Пример (или для чего это нужно):
функция произведения матриц в которую можно было бы передавать вектор-строки, вектор-столбцы и квадратные матрицы (т.е. либо одномерные массивы длины n, либо двумерные nXn, разумеется в правильном порядке и с допустимой размерностью), а результатом тоже будет вектор или матрица - смотря что получится.

Как можно такое реализовать?

Заранее спасибо!


 
Тимохов ©   (2004-01-15 19:03) [1]

function Func(v: array of variant)


 
Тимохов ©   (2004-01-15 19:13) [2]

Можно передевать func(v: variant) где v вариантный массив из массиво (т.е. фактически матрица).


 
VMcL ©   (2004-01-15 19:34) [3]

Тимохов © (15.01.04 19:03) [1] = function Func(const Params: array of const)


 
Тимохов ©   (2004-01-15 19:36) [4]

VMcL © (15.01.04 19:34) [3]

Имхо, array of const устаревшая конструкция - array of variant, опять же имхо, лучше.

Что значит символ "="?


 
Тимохов ©   (2004-01-15 19:38) [5]

array of const не тоже самое что array of variant


 
VMcL ©   (2004-01-15 20:04) [6]

>> Тимохов © (15.01.04 19:36) [4]
>> Что значит символ "="?

Забыл, на клаве есть нужный символ. Я имел в виду ~

>> Тимохов © (15.01.04 19:38) [5]

Посмотри реализацию. Тоже самое.

P. S. Я свой вариант привел как дополняющий, а не исправляющий.


 
Тимохов ©   (2004-01-15 20:06) [7]


> >>Тимохов © (15.01.04 19:38) [5]
>
> Посмотри реализацию. Тоже самое.
>
> P. S. Я свой вариант привел как дополняющий, а не исправляющий.

Обязательно посмотрю завтра, но не уверен, что это так.


 
VMcL ©   (2004-01-18 11:50) [8]

>>Тимохов © (15.01.04 20:06) [7]

Я сам сегодня на всяк случай посмотрел. Я ошибался. Реализация похожая (через TVarRec), но все-таки не через Variant (TVarData).


 
Oyster ©   (2004-01-18 13:24) [9]

В этом примере можно использовать директиву overload
Что-то типа:
procedure p(x:array of extended);overload;
begin
...
end;

procedure p(x:array of array of extended);
begin
...
end;



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

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

Наверх




Память: 0.48 MB
Время: 0.02 c
3-93381
kirov_igor
2003-12-30 00:38
2004.01.29
Выбор значений в gride ?


1-93480
maxXP
2004-01-15 17:46
2004.01.29
Как в listbox определить количество существующих элементов?


3-93365
Marina_S
2004-01-02 19:11
2004.01.29
Обновление формы в при нажатии кнопки


3-93391
Andriy Tysh
2003-12-30 11:16
2004.01.29
DBGridEh.SumList


1-93576
Piroman
2004-01-17 07:56
2004.01.29
Событие OnPaint глючит?