Форум: "Основная";
Текущий архив: 2003.03.17;
Скачать: [xml.tar.bz2];
ВнизА это что за глюк??? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c