Главная страница
    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.036 c
1-1103759458
casper24
2004-12-23 02:50
2005.01.09
Электронно-Цифровая подпись... RSA/MD5...


11-1085129392
A1ex
2004-05-21 12:49
2005.01.09
Обработка RaiseLastOSError в KOL


1-1103632637
Никита
2004-12-21 15:37
2005.01.09
Как запаковать архив в exe шник?


1-1103815624
СерегаМенсон
2004-12-23 18:27
2005.01.09
Помогут ли рез-файлы?


14-1103716377
DSKalugin
2004-12-22 14:52
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский