Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.09;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.066 c
1-1103729274
Unknown user
2004-12-22 18:27
2005.01.09
Как активировать MDIChildlen[N]?


14-1103707033
Hypercube
2004-12-22 12:17
2005.01.09
Программы как исполняемая информация


1-1103538071
Mishenka
2004-12-20 13:21
2005.01.09
Unit DesignEditors


14-1103283310
Koala
2004-12-17 14:35
2005.01.09
Какой DVD плеер посоветуете


9-1093008860
Navi1982
2004-08-20 17:34
2005.01.09
Картинку в чужой кадр!!!