|
Вопрос # 3 415/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
У меня такая проблема. При клике на объект вызывается процедура отчищающая массив объектов, в котором находится и злополучный объект.
Долго бился башкой из за чего вылетает Abstract Error, и допёр, что удаляется используемый объект!
Удалить объект нужно по любому, помогите пожалуйста.
 |
Вопрос задал: Алексей Никитин (статус: 1-ый класс)
Вопрос отправлен: 18 ноября 2009, 21:34
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 9; последнее сообщение — 18 ноября 2009, 22:15; участников в обсуждении: 4.
|
Алексей Никитин (статус: 1-ый класс), 18 ноября 2009, 21:43 [#1]:
Прошу прощения за несвязность речи.
В общем проблема в том чтобы удалить компонент, после клика по нему-же.
|
|
Егор (статус: 10-ый класс), 18 ноября 2009, 21:52 [#2]:
код-то покажь, а то нифига не понятно
если объект удаляется, и должен удаляться, то в чём проблема-то?
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
|
|
min@y™ (статус: Доктор наук), 18 ноября 2009, 21:53 [#3]:
Ну давай показывай, что и как ты удаляешь. Я вот тут взял форму, положил на неё 3 кнопки и создал для них вот такой обработчик OnClick:
procedure TForm1.Button1Click(Sender: TObject);
begin
Sender.Free();
end;
Всё прекрасно работает, никаких ошибок.
Колись давай, как делаешь!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Егор (статус: 10-ый класс), 18 ноября 2009, 22:06 [#4]:
а если на этот же обработчик навесить щелчок по форме?...
гыыыы
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
|
|
Вадим К (статус: Академик), 18 ноября 2009, 22:08 [#5]:
во первых Abstract error возникает немного в другом случае.
во вторых, удалять объект в его же обработчике - потенциальное UB. То есть, надо делать это осознанно. Да, в примере min@y™ это будет работать, но в чуточку сложном - вылезет боком. и ещё каким.
min@y™ , плохой код, у нас выгоняют за такой код.
В целом, код в студию, тогда и подскажем хорошее решение.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
min@y™ (статус: Доктор наук), 18 ноября 2009, 22:11 [#6]:
Цитата (Вадим К):
плохой код, у нас выгоняют за такой код.
А у нас никто такой код и не пишет.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Вадим К (статус: Академик), 18 ноября 2009, 22:12 [#7]:
а кто его выше написал???
Галочка "подтверждения прочтения" - вселенское зло.
|
|
min@y™ (статус: Доктор наук), 18 ноября 2009, 22:13 [#8]:
Abstract Error вылезает при попытке вызвать абстрактный метод объекта или при попытке положить абстракный компонент на форму.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 18 ноября 2009, 22:15 [#9]:
Цитата (Вадим К):
а кто его выше написал???
А это был эксперимент.
Я такой код в реальной жизни не пишу и вообще у меня таких задач быть не может.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|