Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.06.27;
Скачать: [xml.tar.bz2];

Вниз

Abstact error   Найти похожие ветки 

 
Andrew   (2004-06-10 19:05) [0]

Привет!
Подскажите кто сталкивался/боролся с сабжем?
ситуация:
Две формы, Первая создается при запуске, вторая по нажатию кнопочки( form1.Hide;
         form2 := tform2.create(form1);
         form2.show;
)
на второй три кнопки(button1,2,3)
onClick у каждой один и тот же:

procedure TForm2.Button1Click(Sender: TObject);
begin
form1.show;
free;
end;

А реакция программы:
- на первую кнопку такая как и предполагалась(форма два закрылась и первая появилась)
- а вот на второю и третью тоже то самое но еще плюс сообщение об ошибке "Abstract error" - ужасть какой то!!!!
причем эта ошибка появляется при увиличении на второй форме количества кнопок до 3-х, с двумя все нормально.
Я бы отказался от третей и забыл, но "непорядочек все же"(С)
Не сможет ли кто подсказать причину ошибки?


 
Гаврила ©   (2004-06-10 19:07) [1]

procedure TForm2.Button1Click(Sender: TObject);
begin
form1.show;
free;
end;

Не разрушай так в своем методе, это есь неправильно.
В данном случае можно попробовать заменить Free на Release


 
Ihor Osov'yak ©   (2004-06-10 19:24) [2]

2 [1] Гаврила ©   (10.06.04 19:07)

Чисто из религиозных убеждений я бы вместо Release в этом случае написал бы
PostMessage(Handle, WM_Close, 0, 0);
а в обработчике TForm2.FormClose
сказал-бы Action := caFree;

Да и от переменной form2 избавился бы - она здесь тысячу лет нужна (вспоминаем  о with), и от греха подальше..


 
Petr V. Abramov ©   (2004-06-10 19:41) [3]

> сообщение об ошибке "Abstract error"

 TMyClass = class(TSomeClass)
 ....
   procedure AbstractProc; virtual; abstract;
 end;

var
 A: TMyClass;
begin
 .....
 A.AbstractProc; // вот здесь будет ошибка
end;
ищите что-то похожее в коде


 
Гаврила ©   (2004-06-10 22:11) [4]

>>Ihor Osov"yak ©   (10.06.04 19:24) [2]
По сути, это то же самое

>>Petr V. Abramov ©   (10.06.04 19:41) [3]
Исходя из описания ситуации автором вопроса, можно предположить, что непереопределенные абстрактные методы отсутствуют. Скорее всего, такой результат является причиной порчи памяти при неправильном разрушении формы


 
Глеб ©   (2004-06-11 04:38) [5]


> Две формы, Первая создается при запуске, вторая по нажатию
> кнопочки( form1.Hide;
>          form2 := tform2.create(form1);
>          form2.show;)

Попробуй делать не create(form1), а create(application)


 
Andrew   (2004-06-11 10:15) [6]

Спасибо всем!
Не ожидал что когото это заинтересует.
2Глеб: Application не помог........
2Гаврила и Ihor Osov"yak: РАБОТАЕТ!!!!!!!!!!!! и то и другое;
Спасибо ОГРОМНОЕ всем отозвавшимся!!!!!!



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.06.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.041 c
8-1081790843
VasRog
2004-04-12 21:27
2004.06.27
Перемещение картинки


8-1081771345
Dimbas
2004-04-12 16:02
2004.06.27
Проверка на наличие кодека


8-1081833080
$tranger
2004-04-13 09:11
2004.06.27
Координатная плоскость


1-1087279731
Olsher
2004-06-15 10:08
2004.06.27
Как выяснить, работает ли программа или уже завершилась?


8-1081841509
Max003
2004-04-13 11:31
2004.06.27
Как узнать установлен-ли FLASH player для веб броузера?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский