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

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

Можно ли возвратить из функции массив ? [D7, XP]


b/@. ©   (2009-07-10 11:10:00) 

Добрый день.

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

function TForm1.SelectRange(out Indexes: TWordArray): boolean;
var
 i: integer;
begin
   result := mrOk = ShowModal();

   if result
   then begin
     SetLength(Indexes, 0);
     for i := 0 to ListBox.Items.Count -1
     do if ListBox.Selected[i]
       then begin
         SetLength(Indexes, Length(Indexes) + 1);
         Indexes[High(Indexes)] := i;
... тут еще чегото делается...

       end;
   end;
end;

но почему-то я не могу установить длину массива - компилятор ругается на SetLength - Incompatible type.


Palladin   (2009-07-10 15:55:00) [1]

Как в справке описано так и объявлен, я думаю )


KSergey   (2009-07-10 15:53:00) [2]

тип TWordArray как объявлен?


Palladin   (2009-07-10 12:20:00) [3]

Очень свежая мысль )


Anatoly Podgoretsky   (2009-07-10 12:14:00) [4]

Indexes не инициализирован.


Сергей М.   (2009-07-10 12:03:00) [5]

А что мешает таклму объявлению и реализации

function SelectRange: TWordDinArray;

?


b/@.   (2009-07-10 11:44:00) [6]

Прошу прощения - я ошибся...наверное не проснулся еще...

TWordDynArray конечно же :)


Palladin   (2009-07-10 11:34:00) [7]

SetLength не применяется к указателям на массив


Palladin   (2009-07-10 11:34:00) [8]

Тьфу... к статическим массивам )


Сергей М.   (2009-07-10 11:19:00) [9]

Тип TWordArray не является типом, определяющим дин.массив, потому и ругается


Наверх

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