Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема удаления объектов [D7]


AAN ©   (2007-06-05 19:37:00) 

Здравствуйте. Подскажите,пожалуйста, как попроще написать в Delphi_7 деструктор, удаляющий при закрытии с формы Shape, Image, Label, Edit.
Заранее благодарю за поддержку и сотрудничество.
Alex.


Плохиш   (2007-06-06 01:30:00) [1]


> AAN   (05.06.07 19:37)  

Если, при создании компонентов передавал в конструктор указатель на текущий экземпляр формы self, то ничего вручную удалять ненадо, они будут удалены в деструкторе формы.


Anatoly Podgoretsky   (2007-06-06 00:02:00) [2]

> DrPass  (05.06.2007 23:48:18)  [18]

Поскольку объект не создан


DrPass   (2007-06-05 23:48:00) [3]


> Мозги.Free:)

Access violation in module Голова.exe. Read of address 00000000


rumpelshtilchen   (2007-06-05 22:21:00) [4]


> А если мне нужно удалить не только Shape? но и др. компоненты?

Если ещё не сделал то надо так:
Shape.Free;
Image.Free;
Label.Free;
Edit.Free;
Мозги.Free:)


AAN   (2007-06-05 21:27:00) [5]

Спасибо за советы. Попробую. AAN.


Джо   (2007-06-05 21:22:00) [6]

> [13] AAN   (05.06.07 21:18)
> Хорошо понимаю: вам - спецам-профессионалам весело. А вот
> мне не очень. Подскажите с проблемой удаления. Пожалуйста.

С такими знаниями нужно книжки читать. Серьезно.


DrPass   (2007-06-05 21:22:00) [7]


> AAN   (05.06.07 21:18) [13]

Нет, ты все-таки не понимаешь. Вот это
> Что обозначает Shape.Free

> А если мне нужно удалить не только Shape? но и др. компоненты?

- это настолько детский и смехотворный вопрос, что его просто стыдно задавать. Тебе задали направление поиска. РЕШИ ЭТУ ЗАДАЧУ САМ, она ведь простейшая!


AAN   (2007-06-05 21:18:00) [8]

Хорошо понимаю: вам - спецам-профессионалам весело. А вот мне не очень. Подскажите с проблемой удаления. Пожалуйста.


DrPass   (2007-06-05 21:09:00) [9]


> Джо ©   (05.06.07 21:02) [9]

Зато так круче выглядит


> AAN   (05.06.07 21:04) [11]


> А если мне нужно удалить не только Shape? но и др. компоненты?

А это, уважаемый, тебе будет тест на IQ. Решишь - молодец, ты еще не потерян для общества. Не решишь - всерьез задумайся над возможностью суицида :)


AAN   (2007-06-05 21:04:00) [10]

А поподробнее...? Что обозначает Shape.Free или даже if Assigned(Shape) then Shape.Free? Пожалуйста, разъясните что к чему? А если мне нужно удалить не только Shape? но и др. компоненты?


Virgo_Style   (2007-06-05 21:04:00) [11]

DrPass ©   (05.06.07 20:47) [8]
или даже if Assigned(Shape) then Shape.Free


для верности лучше два раза проверить... :-)

Хотя FreeAndNil надежнее)


Джо   (2007-06-05 21:02:00) [12]

> [8] DrPass ©   (05.06.07 20:47)
> или даже if Assigned(Shape) then Shape.Free

Assigned в общем лишнее, в теле Free и так проверяется, что Self<>nil :)


DrPass   (2007-06-05 20:47:00) [13]

Хм...
Shape.Free
или даже if Assigned(Shape) then Shape.Free


AAN   (2007-06-05 20:35:00) [14]

Нет. Этот аспект как раз ясен. Вопрос в другом. Каккой код надо ввести?


Джо   (2007-06-05 20:31:00) [15]

> [5] AAN   (05.06.07 20:27)
> Не понял? Каким образом это сделать?

В дизайнере объектов выделить форму, перейте на вкладку Events, щелкнуть на пустом поле напротив названия события (напр., OnCreate). В открывшемся окне кода написать нужный код.


AAN   (2007-06-05 20:27:00) [16]

Не понял? Каким образом это сделать?


DrPass   (2007-06-05 20:13:00) [17]


> Деструктор компонентов:Shape, Image, Label, Edit

Деструктор компонентов уже есть у этих компонентов. Ничего там писать не нужно.
Если ты сам их создал в обработчике какого-то события (например, в OnCreate формы), то сам удали, например, в обработчике в OnDestroy


AAN   (2007-06-05 20:09:00) [18]

Деструктор компонентов:Shape, Image, Label, Edit.
В начале, с помощью Create, они были помещены на форму.
В конце, с помощью этого деструктора, они должны удаляться с формы.


Джо   (2007-06-05 19:39:00) [19]

П.С. Если Shape, Image, Label, Edit были помещены на форму в дизайн-тайм, то удалены они будут автоматически при уничтожении экз. формы. Это я на всякий случай, мало ли что :)


Джо   (2007-06-05 19:38:00) [20]

Деструктор чего?


Наверх

Титульная страница Поиск, карта сайта Написать письмо