Вниз
Скачать: CL | DM;

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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.02 c
1-1087301878
Dysan
2004-06-15 16:17
2004.06.27
глюки исчезающего TChart


4-1084866284
PavelT
2004-05-18 11:44
2004.06.27
Программное изменение параметра (По умолчанию) в реестре


6-1083310141
Smirnoff
2004-04-30 11:29
2004.06.27
ftp - пересылка файла


14-1086620098
VeTaL
2004-06-07 18:54
2004.06.27
Хороший хостинг!


14-1086943243
Mike
2004-06-11 12:40
2004.06.27
работа с треем




   Наверх