destructor THiAsmClass.Destroy;
var i:integer;
begin
for i:=0 to ArrayOfCB.Count do PControl(ArrayOfCB.Items[i]).Free;
ArrayOfCB.Free;
inherited Destroy;
end;
Но если таблицу перед выходом не очистить (т.е. когда флажки есть), то возникает runtime eroor при выходе.
Однако я, кажется, понял, в чём там было дело.
В моих циклах while уничтожались и создавались флажки в зависимости от количества строк таблицы. И после удаления каждого из флажков шла перерисовка и вновь запускалось событие TableRepait, в котором вновь происходил вход в циклы.
То есть, один и тот же цикл мог запуститься много раз.
Теперь в самом начале обработчика отрисовки я пишу:
TableCtl.OnLVCustomDraw := nil;[/code]
Это значит, что обработчика отрисовки больше нет. То есть, когда первый раз запускается обработчик, больше запуститься он уже не может.
А в конце обработчика я пишу:
TableCtl.OnLVCustomDraw := TableRePaint;[/code]
То есть назначаю тот же самы обработчик отрисовки вновь.
Таким образом, пока не закончатся все циклы в обработчике, вновь запущен он не будет.
[size=-2]------ Добавлено в 07:59 [/size]
Спасибо всем, кто мне помогал