Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.043 c
9-1094846937
Colt1978
2004-09-11 00:08
2005.01.09
Игровое меню


14-1103230472
GEN++
2004-12-16 23:54
2005.01.09
Ну и куда с этим обращаться ????


1-1103715953
_Anonimus_
2004-12-22 14:45
2005.01.09
Как можно выделить TListItem


4-1101144729
webmaster
2004-11-22 20:32
2005.01.09
Перетягивани ссылки из ИЕ !!!


1-1103710048
Руслана
2004-12-22 13:07
2005.01.09
Подскажите как грамотно решить следующую задачу





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский