------------ Дoбавленo в 00.09:
Последняя редакция. Удалось еще 10% выдавить
procedure ThiMTStrTbl.ActionItm; // проверен
var
Row, Col: integer;
fd: PData;
begin
case Data.Data_type of
data_null: exit;
end;
Row := Control.Count;
case Mode of
ITM_INSERT, ITM_REPLACE:
begin
Row := ReadInteger(Data, Null);
if (Row > Control.Count - 1) then exit;
end;
end;
Col := 0;
Control.LVItemInsert(Row, ');
while Col < Control.LVColCount do
begin
Control.LVItems[Row, Col] := ReadString(Data, Null);
inc(Col);
end;
case Data.Data_type of
data_null: exit;
end;
new(fd);
FillChar(fd^, sizeof(TData), 0);
if (Assigned(SmIlist) and (Control.LVStyle <> lvsIcon)) or
(Assigned(LgIlist) and (Control.LVStyle = lvsIcon)) then
begin
Control.LVItemImageIndex[Row]:= ReadInteger(Data, Null);
end;
CopyData(fd, @Data);
Control.LVItemData[Row] := cardinal(fd);
end;
Вот только непонятно, оставить их в хвосте, или сделать как я сделал, те, занести их в отведенный для них параметр
Честно говоря, метод получился лучше и проще, чем в стандартной таблице, естественно, с учетом отсечки кортежа.