Вверх ↑
Разработчик
Ответов: 26163
Рейтинг: 2127
#1: 2009-04-22 00:05:35 ЛС | профиль | цитата
Dilma, возникло предложение загнать иконки в кортеж первым параметром, затем цвет, тогда их можно отсечь.
------------ Д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;

Вот только непонятно, оставить их в хвосте, или сделать как я сделал, те, занести их в отведенный для них параметр

Честно говоря, метод получился лучше и проще, чем в стандартной таблице, естественно, с учетом отсечки кортежа.
карма: 22

0