Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.04.19;
Скачать: [xml.tar.bz2];

Вниз

передача массива в качестве параметра   Найти похожие ветки 

 
Vladimir   (2009-03-04 09:14) [0]

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


 
brother ©   (2009-03-04 09:19) [1]

да


 
MBo ©   (2009-03-04 09:20) [2]

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


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

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

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

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


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

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;


 
brother ©   (2009-03-04 10:15) [5]

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

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


 
brother ©   (2009-03-04 10:17) [6]

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


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


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


не понял вас.


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


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


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

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

var
PaidClients: array of TClientInfo;


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


> Vladimir   (04.03.09 10:24) [7]


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


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


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


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

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


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

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


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

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



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

Форум: "Начинающим";
Текущий архив: 2009.04.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.059 c
2-1236170803
VlGrig1961
2009-03-04 15:46
2009.04.19
Access violation at address... ??????


15-1235208148
Индеец
2009-02-21 12:22
2009.04.19
Компоненты для сжатия данных


2-1235844626
walk
2009-02-28 21:10
2009.04.19
string потоком


2-1235676633
Pavel
2009-02-26 22:30
2009.04.19
Передача значений из функции


1-1210132796
Vladix
2008-05-07 07:59
2009.04.19
Friend-классы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский