![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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;