![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Странности SetLength
mfender © (2013-08-16 10:10:00)
{ Вызов процедуры }
procedure TfrmGridSites.GridInit(DataSet: TDataSet);
begin
uFormGeometry.FillListViewFromDataSet(DataSet, TListView(lvSites), []);
end;
{ Собственно сама процедура }
procedure FillListViewFromDataSet(ADataSet: TDataSet; ListView: TListView;
Flds: array of string);
begin
.......................
if Length(Flds) <= 0 then
begin
{ Вот здесь происходит странное:
компилятор ругается на Flds и сообщает
[DCC Error] uFormGeometry.pas(342): E2008 Incompatible types }
SetLength(Flds, ADataSet.FieldCount);
.......................
Как это можно понимать?
брат Птибурдукова (2013-08-16 11:51:00) [1]Задача-то какая? А то лечение симптомов редко приводит к излечению.
mfender (2013-08-16 10:47:00) [2]Понял, спасибо.
Немного усложнилось. Но оно и к лучшему. Сделаю уже конкретно объект, где сохраню ширину, выравнивание, титул и соответствующее поле из TDataSet, и буду передавать коллекцию таких объектов. Ну и хранить её в INI в виде JSON.
RWolf (2013-08-16 10:24:00) [3]
> Как это можно понимать?
это открытый массив, а не динамический.
Ega23 (2013-08-16 10:19:00) [4]
> А это что за хрень?
Массив строк. Пустой. А что не так?
Jeer (2013-08-16 10:18:00) [5]Type
TFlds = array of string;
var
flds: TFlds;
procedure FillListViewFromDataSet(Flds: TFlds);
begin
..
SetLength(flds,10);
..
end;
А это что за хрень?
uFormGeometry.FillListViewFromDataSet(DataSet, TListView(lvSites), []);