Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Skelet
Зарегистрирован: 22.10.2001 Сообщения: 4
|
Добавлено: Пн Окт 22 2001 07:28 Заголовок сообщения: Как правильно удалять объекты в процессе работы |
|
|
Привет, тому кто читает это! Я динамически (в run-time) создаю несколько экземпляров объектов, потом не завершая приложения мне нужно несколько удалить, но способами до которых я додумался, ничего не получается. Помогите!!!!! |
|
Вернуться к началу |
|
|
S Гость
|
Добавлено: Пн Окт 22 2001 10:39 Заголовок сообщения: Re: Как правильно удалять объекты в процессе работы |
|
|
язык-то хоть какой?
в java присваиваешь объекту null и вызываешь сборщика мусора Runtime.getRuntime().gc(), чтоб уж наверняка |
|
Вернуться к началу |
|
|
Skelet
Зарегистрирован: 22.10.2001 Сообщения: 4
|
Добавлено: Пн Окт 22 2001 10:52 Заголовок сообщения: Re: Как правильно удалять объекты в процессе работы |
|
|
>>язык-то хоть какой? >> >>в java присваиваешь объекту null и вызываешь сборщика мусора Runtime.getRuntime().gc(), чтоб уж наверняка
Нет, это DELPHI 5. Объект, если поможет - radiobutton, при удалении ошибка что типа такого имени (компонента нет) |
|
Вернуться к началу |
|
|
Beguin Гость
|
Добавлено: Пн Окт 22 2001 11:36 Заголовок сообщения: Если компонента принадлежит форме, то удалять ее должна форма, а не ручками. |
|
|
Можно перестраховаться, типа:
if(MyRadioButton) delete MyRadioButton;
Ну и NULL ей присвоить, тоже для профилактики. |
|
Вернуться к началу |
|
|
ЗасЛанец Гость
|
Добавлено: Пн Окт 22 2001 20:46 Заголовок сообщения: Может это? |
|
|
Я так понял, что твоя ошибка в том, что ты ссылки на эти объекты в одну переменную кидаешь. потом, посредством этой переменной удаляешь компонент. Но! но дело в том, что в переменной у тебя только один (последний созданный) компонент. Ты его удаляешь и всё, к остальным компонентам посредством этой переменной досткпа нет. Фактически, это проблемма потерянных ссылок, хотя ссылки на компоненты не совсем уж и потеряны |
|
Вернуться к началу |
|
|
Skelet
Зарегистрирован: 22.10.2001 Сообщения: 4
|
Добавлено: Вт Окт 23 2001 07:09 Заголовок сообщения: Re: Может это? |
|
|
Смотри, создаю я вот так: Btn := TFlatRadioButton.Create(ScrollBox1); { Уничтожать кнопку будет box } Btn.Parent :=ScrollBox1; { Родителем кнопки будет box} Btn.Visible := true; //показываем na:=na+1; //наращивание переменной для имени btn.Name:='chek'+inttostr(na); //создание имени with btn do begin //определение координат top:=ttop; //верх left:=5; //лево (не изменяется) width:=550; //ширина так же height:=75; //высота font.Size:=10; //размер шрифта showhint:=true; hint:='chek'+inttostr(na); delete(st,1,2); caption:=st; //в каптионе имя end; ttop:=ttop+btn.Height; //создание координат верха для следующего элемента;
Потом если попробовать хоты бы вот это - btn.Name:='chek1'; form1.btn.Visible:=false;
то - глюк! и никто ничего пока не подсказал, подскажи, если сможешь, очень нужно. |
|
Вернуться к началу |
|
|
Skelet
Зарегистрирован: 22.10.2001 Сообщения: 4
|
Добавлено: Вт Окт 23 2001 07:12 Заголовок сообщения: Re: Если компонента принадлежит форме, то удалять ее должна форма, а не ручками. |
|
|
я это конечно понимаю, но родитель объекта у меня вообще scrollbox, формочка про них вообче ничего "не знает", так что имя заранее описать я не могу, да я его и не знаю. создается всё это вот так: Btn := TFlatRadioButton.Create(ScrollBox1); { Уничтожать кнопку будет box } Btn.Parent :=ScrollBox1; { Родителем кнопки будет box} Btn.Visible := true; //показываем na:=na+1; //наращивание переменной для имени btn.Name:='chek'+inttostr(na); //создание имени with btn do begin //определение координат top:=ttop; //верх left:=5; //лево (не изменяется) width:=550; //ширина так же height:=75; //высота font.Size:=10; //размер шрифта showhint:=true; hint:='chek'+inttostr(na); delete(st,1,2); caption:=st; //в каптионе имя end; ttop:=ttop+btn.Height; //создание координат верха для следующего элемента
Если что подскажешь, то СПАСИБО! |
|
Вернуться к началу |
|
|
|