Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

передача массива в качестве параметра


Vladimir ©   (2009-03-04 09:14:00) 

Доброго времени суток всем! Есть некая функция, которая должна в качестве возвращаемого параметра возвращать массив. Можно ли это сделать?


Плохиш   (2009-03-04 13:50:00) [1]

А книжку-какую всё-таки советую приобрести, а то тут немощным не часто подают...


Vladimir   (2009-03-04 10:48:00) [2]

Да спасибо большое. Уже переделал. Все работает.


brother   (2009-03-04 10:31:00) [3]

тогда [4] код переделай чуть и будет тебе счастье)


Сергей М.   (2009-03-04 10:30:00) [4]


> Vladimir   (04.03.09 10:24) [7]


Ну как ты написал, так тебя brother © и понял)


> есть тип TClientInfo = record в нем множество полей и естьмассив PaidClients: array of TClientInfo


"и есть" воспринимается как "среди прочих в том числе есть"


Vladimir   (2009-03-04 10:29:00) [5]


> [4]
> а я так понял:
> type
> TClientInfo = record
>   i: Integer;
>   PaidClients: array of TClientInfo;
> end;


нет, PaidClients находиться не внутри TClientInfo, а массив типа TClientInfo

type
TClientInfo = record
..................
end;

var
PaidClients: array of TClientInfo;


Vladimir   (2009-03-04 10:24:00) [6]


> это сам на себя?


не понял вас.


brother   (2009-03-04 10:17:00) [7]

[4]
а я так понял:
type
TClientInfo = record
  i: Integer;
  PaidClients: array of TClientInfo;
end;


brother   (2009-03-04 10:15:00) [8]

> TClientInfo = record в нем множество полей и есть массив
> PaidClients: array of TClientInfo

это сам на себя?


Сергей М.   (2009-03-04 10:14:00) [9]

type
 TClientInfo = record
   i: Integer;
 end;
 TClientInfoArray = array of TClientInfo;

function LoadPaidClientsInfo(out InfoArray: TClientInfoArray): Boolean;
begin
 SetLength(InfoArray, 1);
 InfoArray[0].i := 5;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
 InfoArray: TClientInfoArray;
begin
 LoadPaidClientsInfo(InfoArray);
 ShowMessage(IntToStr(InfoArray[0].i));
end;


Vladimir   (2009-03-04 10:02:00) [10]

Спасибо конечно) но как это сделать?

есть тип TClientInfo = record в нем множество полей и есть массив PaidClients: array of TClientInfo

Есть функция LoadPaidClientsInfo, которая должна возвращать массив типа TClientInfo. как это реализовать?


MBo   (2009-03-04 09:20:00) [11]

да, можно, предварительно объявив тип массива.
А если сделать процедуру с массивом - var-параметром, то иногда это помогает избежать ошибок.


brother   (2009-03-04 09:19:00) [12]

да


Наверх

Титульная страница Поиск, карта сайта Написать письмо