Цитата(_Ivan_33 @ Nov 21 2008, 10:53)

а еще вопрос - может ли функция возвращать массив
Можно только два варианта:
Код
function tip(param1: integer; var param2: Tbuffer):integer;
^
через параметр по ссылке
Второй вариант возможен, но он кривой. Лучше так не делать, потому что можно привыкнуть к этому и на автопилоте возвращать в функции огромные блоки данных, что заставляет машину заниматься черти-чем, и еще служит источником трудноуловимых глюков переполнения стека, т.к. значения функций возвращаются через стек.
Код
function tip2(param1: integer): Tbuffer;
(**********************************)
(*основная программа *)
var
mass1: Tbuffer;
param:integer;
begin
mass1:=tip2(param);
end.
А это - бессмыслица.
Код
var param1,param2 :integer;
begin
param1 := tip2(param2)[1];
end;
Зачем городить кучу данных, если надо что-то одно ?
После вызова функции ее результат доступен ведь только один раз.