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

Вниз

Переменные различного типа в параметре процедуры   Найти похожие ветки 

 
OperaM   (2011-02-04 18:58) [0]

Здравствуйте!

Как извертеться , чтоб в вызываемую процедуру можно было класть неизвестное заранее число переменных различного типа, присвоить им в этой процедуре значения и вернуть их вызывающей программе. Т.е. что-то типа такого:


procedure pname( var p:array of TVarRec );
begin
 p[0].VInteger:=5;
 p[1].VString:="text";
end;

procedure main;
var
 i:integer;
 s:string;
begin
 pname([i,s]);
 if i=5...
end;


 
Ega23 ©   (2011-02-04 19:05) [1]

pointer?


 
Плохиш ©   (2011-02-04 19:51) [2]

<
type
 TDynVariant = array of Variant;
...
procedure pname(p:TDynVariant);
/CODE>


 
Anatoly Podgoretsky ©   (2011-02-04 20:00) [3]

> OperaM  (04.02.2011 18:58:00)  [0]

(const A:array of const)


 
Xapakupu   (2011-02-04 21:00) [4]

Так как вызываемая процедура кладет значения согласно какой-то своей внутренней логике; а вызывающий код, соответственно, типа "знает", что ему вернули, и может корректно эти возвращенные значения извлечь, то напрашивается мысль, что...

...количество вариантов возвращаемых наборов "переменных" есть фиксированным и известно, в общем, еще на этапе компиляции...

...а потому, думаю, не следует идти против природы строго типизированного языка, коим является Delphi...

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

Если же хочется чего-то необычного, то, думаю, следует смотреть в сторону решений по типу DB.TParams... ибо с именованными параметрами работать проще, да и с порядком следования возвращаемых данных никакой неразберихи... лишь бы с именами не напутать, да с типами данных... и, опять же таки, "грабли" полезут уже на этапе выполнения...


 
Сергей М. ©   (2011-02-04 22:15) [5]

Что ни день, то кладут  в процедуры.


 
KilkennyCat ©   (2011-02-04 23:20) [6]


> Сергей М. ©   (04.02.11 22:15) [5]

лучше "в", чем "на"



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

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

Наверх




Память: 0.48 MB
Время: 0.007 c
1-1253820069
Fynjisx
2009-09-24 23:21
2011.05.15
Текстовый редактор на основе TMemo или RichEdit


15-1296163782
Юрий
2011-01-28 00:29
2011.05.15
С днем рождения ! 28 января 2011 пятница


15-1295855310
12
2011-01-24 10:48
2011.05.15
посоветуйте простой http перехватчик траффика. Локально нужен.


2-1296743758
Неважно
2011-02-03 17:35
2011.05.15
Объединение таблиц


3-1255607934
PG81
2009-10-15 15:58
2011.05.15
Как хранить файлы в PostrgeSQL?