Главная страница
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.027 c
3-1102596171
Kolya
2004-12-09 15:42
2005.01.09
Ошибка SQL


4-1100954329
kaZaNoVa
2004-11-20 15:38
2005.01.09
NTFS - Процесс без файла - глюк или фантастика ?


4-1101307630
Кирилл
2004-11-24 17:47
2005.01.09
Шрифт


3-1102531028
Sergilov
2004-12-08 21:37
2005.01.09
Помогите создать новый Access файл.


4-1101038692
grigory
2004-11-21 15:04
2005.01.09
FAT