Форум: "Основная";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];
ВнизStringGrid и об екты. Найти похожие ветки
← →
antonn © (2004-12-20 13:10) [0]Здравствуйте мастера! Возник такой вопросик. У меня есть объект который нужно вставить в StringGrid. В ListBox я вставлял так: ListBox.Items.AddObject(Work_log^.s1 , TObject(Work_log)); Со StringGrid так не катит, делаю так:
new(ListTime);
ListTime^.Mode:="232";
ListTime^.time:="23234534";
ListTime^.time1:="4545";
StringGrid1.Objects[0,2]:= TObject(ListTime);
Правильно ли я делаю? Мне кажется это коряво, что должен быть способ лучше.
← →
Семен Сорокин © (2004-12-20 14:39) [1]правильно, главное не забывать чистить за собой :)
← →
tradakad (2004-12-20 14:49) [2]я в ListBox добавлял объекты так
function TfMain.AddToListBox(wTitle:string):boolean;
begin
if FindComponent("CheckBox"+inttostr(i))=nil then
begin
fMain.ListBox1.AddItem(inttostr(i),self);
with TCheckBox.Create(self) do
begin
Name:="CheckBox"+inttostr(i);
Top:=chTop;
left:=75;
height:=20;
width:=500;
Caption:=" "+wTitle;
Checked:=true;
Parent:=fMain.ListBox1;
end;
end;
chTop:=chTop+20;
inc(i);
end;
← →
antonn © (2004-12-20 15:28) [3]ага, а если я уже "объективной" клетке присвою новый объект, старый удаляется?
(StringGrid1.Objects[0,2]:= TObject(ListTime);)
← →
Семен Сорокин © (2004-12-20 16:46) [4]
> antonn © (20.12.04 15:28) [3]
> ага, а если я уже "объективной" клетке присвою новый объект,
> старый удаляется?
> (StringGrid1.Objects[0,2]:= TObject(ListTime);)
при таком раскладе старый уходит в небытие, и образуется утечка памяти :)
надо так:
if Assigned(StringGrid1.Objects[0,2]) then
Dispose(StringGrid1.Objects[0,2]);
StringGrid1.Objects[0,2]:= TObject(ListTime);
PS. Я вообще сторонник того чтобы выделенные объекты/указатели держать в отдельном списке (TList) и чистить их там перед обновлением.
← →
antonn © (2004-12-20 17:22) [5]
> PS. Я вообще сторонник того чтобы выделенные объекты/указатели
> держать в отдельном списке (TList) и чистить их там перед
> обновлением.
А где их еще можно хранить? А то про утечки я слышал, но на опыте не проверял. А если программу с утечкой закрыть, память освобождается? И чем можно проверять?
← →
Семен Сорокин © (2004-12-21 10:06) [6]
> antonn © (20.12.04 17:22) [5]
> А где их еще можно хранить?
Да хоть в том же массиве (динамическом или статическом - если знаешь размер).
> А то про утечки я слышал, но на опыте не проверял.
> А если программу с утечкой закрыть, память освобождается?
Освобождается
> И чем можно проверять?
MemProof поищи программку в сети.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c