![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не убивается форма [D7, XP]
neveGreen © (2008-12-23 22:33:00)Имеется код:
with TMyForm.Crate(Application) do
begin
try
ShowModal;
if ModalResult=Ok then
begin
Траляля;
end;
finally
Free;
end;
end;
Вроде так... На строке free ошибка - обращение к не тому адресу памяти.
Что может вызывать такую ошибку. Потом при вызове этого кода:
TMyForm_1 is already ecxist; и этот код уже не заработает. Может есть быстрый совет, потому что отслеживать что в ней твориться очень долго...
Заранее благодарю
neveGreen (2008-12-26 23:05:00) [1]
> Amoeba © (26.12.08 19:24) [33]
Бугога. Баян, йоу. Ладно, всё хорошо, разберусь. Спасибо всем, особенно Сергей М., честно.
Amoeba (2008-12-26 19:24:00) [2]
> eveGreen (25.12.08 21:39) [27]
>
>
> > Сергей М. © (25.12.08 19:27) [26]
>
> Ну на сколько я туп конечно не мне судить... И мат часть
> я не знаю досконально... Но я думаю, что гораздо бессмысленнее
> выкидывать сюда 10000 строк кода, чем спросить [22]... Могу
> лишь добавить, что все объекты формы не являются ее детьми.
> .. и спросить почему может выдавать такое сообщение с _1
> если такого синтаксиса вообще в проекте нет? и какие вредные
> последствия могут быть если в этих объектах скрывается деструктор
> родителя TObject ?
Я плакалЪ! Нет слов!
Сергей М. (2008-12-26 12:43:00) [3]Нахреновертить в теле своего деструктора можно все что угодно.
Уж как нахреновертил, так и "вредные последствия" будут, вплоть до BSOD)
neveGreen (2008-12-26 12:30:00) [4]> какие вредные последствия могут быть если в этих объектах ?
Сергей М. (2008-12-26 12:10:00) [5]И что ?
neveGreen (2008-12-26 12:08:00) [6]method "Destroy" hides virtual method of base type 'TObject'
Сергей М. (2008-12-26 09:36:00) [7]
> neveGreen (25.12.08 21:39) [27]
> почему может выдавать такое сообщение с _1
Там два сообщения:
> обращение к не тому адресу памяти
и
> TMyForm_1 is already ecxist
Ни одно из этих сообщений дословно в такомвиде ты увидеть не мог, особенно первое.
> такого синтаксиса вообще в проекте нет
Какого такого "синтаксиса" ?
> какие вредные последствия могут быть если в этих объектах
> скрывается деструктор родителя TObject
Что значит "скрывается" ? Кем и зачем он "скрывается" ?
Если классом-предком действительно является TObject, то невызов его метода-деструктора в перекрытом методе деструкторе прямого его наследника ничем не грозит - тело виртуального метода TObject.Destroy не содержит ни единой строчки кода, это просто некая ничего не делающая "заглушка".
neveGreen (2008-12-25 21:39:00) [8]
> Сергей М. © (25.12.08 19:27) [26]
Ну на сколько я туп конечно не мне судить... И мат часть я не знаю досконально... Но я думаю, что гораздо бессмысленнее выкидывать сюда 10000 строк кода, чем спросить [22]... Могу лишь добавить, что все объекты формы не являются ее детьми... и спросить почему может выдавать такое сообщение с _1 если такого синтаксиса вообще в проекте нет? и какие вредные последствия могут быть если в этих объектах скрывается деструктор родителя TObject ?
Сергей М. (2008-12-25 19:27:00) [9]
> neveGreen (25.12.08 18:08) [24]
Надо знать матчасть.
А ты ее, судя по всему, не знаешь.
Да еще и кочевряжишься)
Тебе в [8] был дан намек, что без конкретного кода ничего конкретного сказать по твоей беде нельзя.
Ты что, блондинко ? Ты настолько туп, что не понимаешь этой элементарнойвещи, да ?
Медвежонок Пятачок (2008-12-25 19:07:00) [10]"не вызывая явно" - это чтобы никто не заметил?
:)
neveGreen (2008-12-25 18:08:00) [11]
> Можно, никто не против.
а как это сделать, не вызывая явно деструкторы объектов?
Сергей М. (2008-12-25 15:34:00) [12]
> можно как то перед "освобождением формы" убить созданные
> во время работы ее методов объекты?
Можно, никто не против.
neveGreen (2008-12-25 15:29:00) [13]Думаю не убиваются нормально объекты в этой форме... А можно как то перед "освобождением формы" убить созданные во время работы ее методов объекты?
Медвежонок Пятачок (2008-12-24 11:19:00) [14]с переменной или без переменной создается экземпляр разницы же нет.
хотя ситуация странная именно из-за формы.
был бы неубитый фрейм, было бы понятно. но одноименные экземпляры форм-то создавать не возбраняется вроде
{RASkov} (2008-12-24 11:12:00) [15]> [19] Медвежонок Пятачок © (24.12.08 10:41)
> это имя экземпляра конечно же.
Я тоже так-же подумал, но у автора-то создание формы:
> with TMyForm.Crate(Application) do
без переменной, тогда откуда:
> Потом при вызове этого кода:
> TMyForm_1 is already ecxist;
Медвежонок Пятачок (2008-12-24 10:41:00) [16]это имя экземпляра конечно же.
{RASkov} (2008-12-24 10:20:00) [17]> там еще TMyForm_1 is already ecxist
TMyForm_1 - это объект или все-таки класс?
Если объект, то скорее всего [13] и не нилится потом...
А для класса такая "ошибка"(сообщение) не реально.
Сергей М. (2008-12-24 09:37:00) [18]
> там еще TMyForm_1 is already ecxist
А это уже, видимо, из другой оперы
Медвежонок Пятачок (2008-12-24 09:34:00) [19]там еще TMyForm_1 is already ecxist
Сергей М. (2008-12-24 09:29:00) [20]
> caFree привело бы просто к ав
хз, мож у автора как раз AV и есть..
Под фривольной трактовкой "обращение к не тому адресу памяти" можно подразумевать все что угодно, вплоть до AV