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

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

Dinamic array vs Open array [D5, Win2k]


id_privin ©   (2002-07-17 15:47:00) 

есть переменная

names : array of string;

и процедура

set_names(list : array of string);
begin
names := list;
end;


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

Спасибо.


Skier   (2002-07-17 16:55:00) [1]

>id_privin
Статические массивы можешь присваивать сколько угодно,
если, конечно, они одинакого объявлены (и значения будут
копироваться).

С динамическими сложнее :
если пишешь A := B, где A и B динамические массивы, то
на самом деле ты присваиваешь адрес массива...


id_privin   (2002-07-17 16:50:00) [2]

Изврат это когда просто хочеться присвоить один массив другому, и попутно еще что-то сделать, да???????????????
Ну не понял тогда я Дельфу


Skier   (2002-07-17 16:38:00) [3]

>id_privin
Ищи другой способ...Так как ты хочешь сделать - это изврат.
Тогда уж лучше через TStringList...(?)


id_privin   (2002-07-17 16:34:00) [4]

Ну неужели Delphi не умееет делать это нормально, по человечески?


Eugene Lachinov   (2002-07-17 16:24:00) [5]

>saxon
Супер, Delphi вызывает DynArrayFromVariant


saxon   (2002-07-17 16:17:00) [6]

так наверное кривовато но работает

Type
TStringArray = array of string;

var
names : TStringArray;

procedure set_names(list : TStringArray);
begin
names := list;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
set_names(VarArrayOf(["as"]));
end;


Skier   (2002-07-17 16:04:00) [7]

>id_privin

set_names(["aaa","bbb"]) - Так нельзя будет сделать :(



id_privin   (2002-07-17 15:56:00) [8]

Хочеться чтоб можно было так

set_names(["aaa","bbb"]);

> Skier
По предложенному он скажет Ordinal type required


Skier   (2002-07-17 15:49:00) [9]

>id_privin


Type
TStringArray = array of string;

var
names : TStringArray;

set_names(list : TStringArray);
begin
names := list;
end;



Наверх

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