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

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

Не убивается форма [D7, XP]


Страницы:   1 2

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


Страницы:   1 2

Наверх

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