Вверх ↑
Ответов: 1926
Рейтинг: 172
#1: 2009-08-01 13:37:01 ЛС | профиль | цитата
Я вообще-то хотел сделать так, чтобы в одной из колонок отображались флажки. Причём всегда, а не только в режиме редактирования. Для этого решил использовать InlineCode.

Вот это происходит при добавлении строки в таблицу.
code_2360.txt

Однако при использовании ползунка в таблице флажки не хотят перемещаться вслед за строками. Приходится делать перерисовку.

procedure THiAsmClass.TableRePaint;
var i:integer;
r:TRect;
begin
TableCtl := PControl(ToIntegerEvent(dParentTable));
if TableCtl.LVCount = 0 then exit;

for i:=0 to TableCtl.LVCount do
begin
r := TableCtl.LVItemRect(i, lvipBounds);
PControl(ArrayOfCB.Items[i]).top := r.top;
end;
end;

Однако перерисовка происходит долго при большом количестве строк (>1000).
Нет ли способа сделать отрисовку быстрее?

[size=-2]------ Добавлено в 13:37
TableRePaint - это OnLVCustomDraw
карма: 9
0
файлы: 1code_2360.txt [723B] [602]