Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.17;
Скачать: CL | DM;

Вниз

А это что за глюк???   Найти похожие ветки 

 
axs   (2003-03-06 18:44) [0]

Кто знает что эта ошибка означает???

Появляется окно с заголовком "Debugger Exception Notification"
и текст в окне....

Project myprogram.exe raised exception class EAbstractError with message "Abstract Error". Process stopped

Что это за такая абстрактная ошибка и что она означает???


 
Palladin ©   (2003-03-06 18:46) [1]

обратился к абстрактному методу класса...
Abstract + F1


 
axs   (2003-03-06 18:54) [2]

хе-хе :) НЕСМЕШНО, блин!!!
А если серьезно!!! У меня прога все правильно работает а через
промежуток времени после того как я раз 7-15 нажимаю на кнопку вылетает такая воть фигня!!!


 
Mike_Goblin ©   (2003-03-06 18:57) [3]

Ты вызываешь абстрактный метод


 
Palladin ©   (2003-03-06 19:01) [4]


> axs (06.03.03 18:54)

Интересно, а что смешного я сказал?


 
axs   (2003-03-06 19:03) [5]

Каким это боком я вызываю абстрактный метод??? Ну если есть желание могу вставить свой код программы можете попробовать поразбираться тут....

for c:= Form1.ComponentCount -1 downto 0 do
if (Form1.Components[c] is TNSimg) then
if (Form1.Components[c] as TNSimg).Name = "But"+IntToStr(i) then
Form1.Components[c].Free;

я так думаю что ошибка появляется именно из за этого участка кода когда я "убиваю" компоненты...


 
Anatoly Podgoretsky ©   (2003-03-06 19:09) [6]

axs (06.03.03 18:54)
Нет у теня "прога" не правильно работает, есть ошибка.



 
axs   (2003-03-06 19:13) [7]

Anatoly Podgoretsky © (06.03.03 19:09)

А где, если не секрет??? Плиззз я уже пол дня над этим глюком страдаю... :((((


 
Anatoly Podgoretsky ©   (2003-03-06 19:16) [8]

Не секрет конечно, если будет достен код программы, но если он большой или запутанный, то лучше не трать время, но обязательно надо посмотрет 17 строку, там ошибка.


 
axs   (2003-03-06 19:26) [9]

Ага, смешно.
А впринципе ты прав... зря я тут трачу время(всмысле на форуме), тем более что только что выдали зарплату и я носом чую что буду седня пьяным.............................................
Если что то мыль ответ на мыло axs@stsland.ru
А это типо весь код процедуры данной правда она ещё там кое какую процедурку вызывает...
procedure min;
var i: byte;
t,c: integer;
begin
if not flag then
begin
t:= 0;
for i := 8 downto 1 do
begin
t := 50*i ;
for c:= Form1.ComponentCount -1 downto 0 do
if (Form1.Components[c] is TNSimg) then
if (Form1.Components[c] as TNSimg).Name = "But"+IntToStr(i) then
Form1.Components[c].Free;
Form1.RedLine(i,t,2);
end;
Form1.RedLine(0,0,3);
end;
flag := true;
end;
а данные компоненты создаются таким методом из процедуры RedLine
if flag then
begin
But := TNSimg.Create(Form1);
But.Left := 54;
But.Top := 22 + (T-50);
But.Width := 50;
But.Height := 50;
But.name := "But" + IntToStr(L);
But.Parent := Form1;
But.OnClick := Click;
But.OnMouseEnter := Enter;
But.OnMouseLeave := Leave;
But.OnMouseDown := Up;
end;

Ну вот вроде и все... надеюсь тут все доступно написано


 
Anatoly Podgoretsky ©   (2003-03-06 19:33) [10]

Тут вопросов громадная куча, неизветные типы, функции, классы и т.д. и за каждым из них может стоять ошибка.


 
axs   (2003-03-06 19:39) [11]

Мдя... Все с вами ясно... будем эту проблЭму решать "Научным Методом Тыка"... ладно всеравно спасибо...
А программа действительно оочень большая, но такую ошибку я увидел впервые и незнаю что она означает...
а принцип очень прост, жму на обьект и он уничнтожает все, в том числе и себя, обьекты данного типа... и ошибка возникает тогда когда удаляються эти обьекты... :(


 
axs   (2003-03-06 19:41) [12]

Но правда ошибка появляется не сразу а так с 7-15 раза!!! :)))


 
Anatoly Podgoretsky ©   (2003-03-06 20:04) [13]

axs (06.03.03 19:39)
Используй трассировку, может удастся уточнить в каком месте у тебя затык. Не повторяемость может говорить или о неправильной инициализации, об ошибках использования глобадьных переменных (лучше что бы их не было), о неверной работе с указателями, затираением памяти за пределами и подобных небрежностях.
Найти будет нелегко, такие ошибки трудно обнаруживаемые, проще и дешевле писать без ошибок, не давать им места для простора, тогда и отладка требуется по минимуму.

Вот в этом куске вызывет сомнение необходимость применения переменной But, а если она к тому же и глобальная, то совсем плохо.


if flag then
begin
But := TNSimg.Create(Form1);


Надеюсь, что у тебя хотя бы включены рантайм проверки в проекте или расчитываешь на удачу.



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

Текущий архив: 2003.03.17;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
14-54229
Мыш
2003-03-03 17:06
2003.03.17
База имен


3-53843
Anonimus
2003-02-27 09:01
2003.03.17
DBGrid


1-54005
Ag2002
2003-03-04 18:19
2003.03.17
Прозрачность


1-54051
Andrew H.
2003-03-05 09:28
2003.03.17
Копирование из буфера в Excel2000


3-53890
DieM@N
2003-02-22 04:19
2003.03.17
Не открывается DBF-ник!!!