Доброго времени суток. Подскажите что я делаю не так, какое свойство не правильно настроил. Почему "-" для сворачивания дочерних узлов отображается в последнем столбце? В других формах тоже используется VT, но тот код писал не я. Не могу разобраться в чём у меня отличается.
procedure TfmAttachFiles.ReloadData(ChoosingNode: PVirtualNode = nil);
var
i, n: Integer;
AddingObject, filesBefore, filesAfter: tsFileInfo;
AddingNode, filesBeforeRegister, filesAfterRegister, vtNode: PVirtualNode;
FileInfoArray: tsArray;
begin
vtFiles.Clear;
FileInfoArray := WS.OmanService.TSMission_GetFileInfoArray(MissionID,
WS.ArrayRequest); //Получаем данные с сервера
n := 0;
try
vtFiles.BeginUpdate;
filesBefore := tsFileInfo.Create;
filesBefore.name_ := 'Файлы загруженные до регистрации';
filesBefore.ftype := 'before';
filesBeforeRegister := vtAddChild(vtFiles, nil, filesBefore);
filesAfter := tsFileInfo.Create;
filesAfter.name_ := 'Файл загруженные после регистрации';
filesAfter.ftype := 'after';
filesAfterRegister := vtAddChild(vtFiles, nil, filesAfter);
for i := 0 to Length(FileInfoArray.items) - 1 do
begin
AddingObject := tsFileInfo(FileInfoArray.items[i]);
if ((AddingObject.ftype = 'attach') then
begin
if Mission.endDate.AsDateTime >= AddingObject.dtr.AsDateTime then
AddingNode := vtAddChild(vtFiles, filesBeforeRegister, AddingObject)
else if Mission.endDate.AsDateTime < AddingObject.dtr.AsDateTime then
AddingNode := vtAddChild(vtFiles, filesAfterRegister, AddingObject);
inc(n);
end;
end;
vtFiles.EndUpdate;
end;
//Обработчик события OnGetText
procedure TfmAttachFiles.vtFilesGetText(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: string);
var
FI: tsFileInfo;
begin
FI := tsFileInfo(vtGetNodeDataObj(vtFiles, Node));
if not(Assigned(FI)) then
begin
CellText := '-';
Exit;
end;
if vtFiles.GetNodeLevel(Node) = 0 then
begin
if Column = 0 then
begin
CellText := FI.name_;
end
else
CellText := '';
end
else
begin
case Column of
0:
CellText := FI.name_;
1:
CellText := FormatFileSize(FI.size);
2:
CellText := FormatDateTime('dd.mm.yyyy hh:nn', FI.dtr.AsDateTime);
3:
CellText := Trim(FI.loaderName);
4:
begin
if FileIsChanged(FI) then
begin
CellText := 'Сохранить изменения';
lblFileIsChanged.Visible := True;
lblSave.Visible := True;
end
else
begin
CellText := '';
lblFileIsChanged.Visible := False;
lblSave.Visible := False;
end;
end;
end;
end;
end;