Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.008 c
14-54254
Driverrr
2003-02-28 12:29
2003.03.17
UT...


1-54082
Maxim2030
2003-03-05 10:27
2003.03.17
Вопрос по $IFDEF


3-53894
Destroyer
2003-02-25 08:51
2003.03.17
Автоинкрементное поле


6-54132
soho
2003-01-27 17:50
2003.03.17
whois


4-54383
maxim2
2003-01-24 06:11
2003.03.17
Я понимаю, что я всех заколебал.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский