Здравствуйте.
Помогите пожалуйста с проблемой.
Есть StringGrid, в него встроены CheckBox'ы
NewCheckBox := TCheckBox.Create(Application);
NewCheckBox.Caption :='Новый чекбокс';
NewCheckBox.Parent := StringGrid1.Parent;
Stringgrid1.Objects[0,i]:=NewCheckBox;
Далее по коду если мне нужно создать заного эти чекбоксы я сначала их дестрою, а потом создаю по-новой.
Иногда получается так что в StringGrid'е нет чекбоксов и остаётся 2 строки - одна загаловок, вторая пустая.
И при попытке удаления вознивает ошибка "Invalid Pointer Operation".
Удаляю так
begin
for i := 1 to StringGrid1.RowCount-1 do
begin
if Assigned(StringGrid1.Objects[0, i] as TCheckBox) then
begin
(StringGrid1.Objects[0, i] as TCheckBox).Destroy;
StringGrid1.Cells[1, i]:='';
end;
end;
StringGrid1.RowCount:=2;
end;
procedure TForm5.Prev_page;
begin
if NOT (Cur_page=0) then
Begin
Cur_page:=Cur_page-1;
DrawPage;
end;
end;
Вопрос: Как ВСЕГДА безопасно можно удалять CheckBox'ы из StringGrid'а? Думаю что при помощи FreeAndNil
FreeAndNil(StringGrid1.Objects[0, i] as TCheckBox)
Но так ругается "Constant object cannot be passed as var parameter".
Прошу помощи :(