Форум: "Начинающим";
Текущий архив: 2007.04.01;
Скачать: [xml.tar.bz2];
ВнизОшибка Найти похожие ветки
← →
wahnsinng © (2007-03-06 15:06) [0]Здравствуйте уважаемые мастера,
не подскажите что за ошибка выскакивает
Project Project1.exe raised exception class EAccessViolation with message "Access violation at address 00439D08 in module Project of adress 000000050"
var
TypeClass : TControlClass;
New : TControl;
i,J : integer;
Count_was, num,kol: integer;
s1 : string;
Tags: Integer;
K : Integer;
Li : Integer;
begin
Count_Was := 1;
num := 0;
kol := 0;
Li := 0;
K :=strToInt(copy(s,kol, PosEx("|",S,num)-1));
if PL.ComponentCount <> 0
then
while Pl.ControlCount > 0 do
Pl.Components[0].Destroy;
TypeClass:=TspeedButton;
for I :=1 to K + 3 do
begin
num :=PosEx("|",S,num)+1;
kol := num;
Li := ((PosEx("|",S,num)-1) - kol) +1;
S1:=copy(S,kol, li);
case Count_Was of
1: image1.Picture.LoadFromFile(ExtractFilePath(Paramstr(0))+"datay\"+S1);
2: imageTitle1.Caption := S1;
3: FrageR := StrToInt(S1);
end;
if Count_Was > 3 then
begin
New:=TypeClass.Create(PL);
TspeedButton(New).Left := 15;
TspeedButton(New).Top := (25 * (Count_Was-3) );
if FrageR = (Count_Was-3) Then
TspeedButton(New).Tag := FrageR
else
TspeedButton(New).Tag := 0;
TspeedButton(New).Cursor := crHandPoint;
TspeedButton(New).OnClick := SpeedButton0Click;
TspeedButton(New).Width := 150;
TspeedButton(New).Caption :=s1;
<!Ошибка здесь!>
New.Parent:=PL;
end;
Inc (Count_Was);
end;
end;
← →
Сергей М. © (2007-03-06 15:08) [1]
> <!Ошибка здесь!>
На пустой строке ?)
← →
wahnsinng © (2007-03-06 15:09) [2]Программа останавливается перед New.Parent:=PL;
← →
wahnsinng © (2007-03-06 15:12) [3]причем через раз, то работает, то ошибка
← →
Плохиш © (2007-03-06 15:12) [4]
> wahnsinng © (06.03.07 15:06)
Ты серьёзно думаешь, что здесь филиал отладчика?
← →
Сергей М. © (2007-03-06 15:13) [5]Что значит "перед" ?
У тебя есть отладчик, он позволяет пошагово исполнять операторы программы ..
← →
wahnsinng © (2007-03-06 15:21) [6]При пошаговой отладке, он не разу не выдал ошибку, при нормальном запуске, начинает выскакивать ошибка описанная в начале.
← →
wahnsinng © (2007-03-06 15:22) [7]Что вообще означает эта ошибка.
← →
Сергей М. © (2007-03-06 15:26) [8]
> при нормальном запуске, начинает выскакивать ошибка описанная
> в начале
Ну и с чего ты взял, что ошибка возникает именно в упомянутом тобой месте ?
> Что вообще означает эта ошибка
Ошибка нарушения прав доступа к странице вирт.памяти по такому-то адресу.
← →
Плохиш © (2007-03-06 15:27) [9]
> wahnsinng © (06.03.07 15:22) [7]
> Что вообще означает эта ошибка.
Попытка залезть своими кривыми ручёнками в закрытую/нераспределённую область памяти.
← →
wahnsinng © (2007-03-06 15:27) [10]
> Ну и с чего ты взял, что ошибка возникает именно в упомянутом
> тобой месте ?
Отследил ошибку
← →
Сергей М. © (2007-03-06 15:52) [11]
> Отследил ошибку
Эт каким же макаром ? ShowMessage() что ли расставлял ?
← →
wahnsinng © (2007-03-06 15:52) [12]Да
← →
Сергей М. © (2007-03-06 16:00) [13]т.е ты утверждаешь, что код вида
TspeedButton(New).Caption :=s1;
?
ShowMessage("Перед обращением к св-ву Parent");// <!Ошибка здесь!>
New.Parent:=PL;
ShowMessage("После обращением к св-ву Parent");
выводит на экран не иначе как "Перед обращением к св-ву Parent" ?
← →
Elen © (2007-03-06 16:02) [14]
> New : TControl;
Ой какое имя некошерное!.
← →
Elen © (2007-03-06 16:04) [15]
> При пошаговой отладке, он не разу не выдал ошибку, при нормальном
> запуске, начинает выскакивать ошибка описанная в начале.
Это ты весь полностью код привел или нет?
← →
Сергей М. © (2007-03-06 16:05) [16]
> некошерное
Чтой-то вдруг ?)
← →
Elen © (2007-03-06 16:08) [17]
> Чтой-то вдруг ?)
Да процедурка такая уж есть. Лично я стараюсь не называть переменные и иже с ними именами которые уже чему-то приписаны.
← →
wahnsinng © (2007-03-06 16:10) [18]
> Сергей
Я ничего не утверждаю, потом как, говорил выше незнаю что за ошибка, делаю предположение.
← →
wahnsinng © (2007-03-06 16:13) [19]
> Это ты весь полностью код привел или нет?
Нет, но там нигде нет ошибок, или предпосылок на них.
← →
Сергей М. © (2007-03-06 16:16) [20]
> Elen © (06.03.07 16:08) [17]
Боже, какой бред ты порой несешь)
> wahnsinng © (06.03.07 16:10) [18]
> Я ничего не утверждаю
Вот сначала поимей факты, а потом приходи)
Иначе разговор сводится к "что-то где-то там пукнуло, не знаю где, но мне кажется, что пукнуло"
← →
wahnsinng © (2007-03-06 16:18) [21]
> Сергей М.
Кто ж тебя просит отвечать, раз ты не можешь.
← →
Сергей М. © (2007-03-06 16:24) [22]
> wahnsinng © (06.03.07 16:18) [21]
>
>
> раз ты не можешь.
>
Нет, братец-кролик, "не можешь" именно ты)
И пока ты вылечишь свою "импотенцию" в части элементарного пользования встроенным отладчиком, программистское "бесплодие" тебе гарантировано)
← →
Elen © (2007-03-06 16:28) [23]
> Боже, какой бред ты порой несешь)
Это почему же?
← →
wahnsinng © (2007-03-06 16:30) [24]Удалено модератором
← →
Игорь Шевченко © (2007-03-06 16:32) [25]
> Это почему же?
Кроме тебя на этот вопрос никто не сможет ответить
← →
Elen © (2007-03-06 16:33) [26]
> wahnsinng © (06.03.07 16:30) [24]
Да ладно по пустякам сориться. Автор, лучше еще раз внимательней пройди отладчиком пошагово, или позаремь операторы, которые считаеш ошибочными.
← →
Elen © (2007-03-06 16:34) [27]
> Кроме тебя на этот вопрос никто не сможет ответить
Жалко! Вот поучить меня некому... И вы не хотите... :-/
← →
Игорь Шевченко © (2007-03-06 16:42) [28]Elen © (06.03.07 16:34) [27]
Я могу совет дать - почитать книгу по Delphi. Вдумчиво почитать. Хорошую книгу. Например, Тейксеру с Пачекой.
Или заплатить за обучение любому желающему это обучение провести.
← →
Elen © (2007-03-06 16:44) [29]
> Игорь Шевченко © (06.03.07 16:42) [28]
Спасибо, как-нибудь на досуге...
← →
Сергей М. © (2007-03-06 16:49) [30]
> Elen © (06.03.07 16:44) [29]
> как-нибудь на досуге
заодно как-нибудь на досуге вдумайся в свое нынешнее утверждение насчет "некошерности"
← →
Elen © (2007-03-06 17:15) [31]
> Сергей М. © (06.03.07 16:49) [30]
Обязательно.
← →
ЮЮ © (2007-03-07 06:51) [32]А заголовок свой процецуры привести и способ её вызова?
← →
Loginov Dmitry © (2007-03-07 07:39) [33]> if PL.ComponentCount <> 0
> then
> while Pl.ControlCount > 0 do
> Pl.Components[0].Destroy;
Господи, ну что ж это за трава-то?
← →
wahnsinng © (2007-03-07 18:09) [34]
> Loginov Dmitry
Да я уже сам нашел.
← →
Amoeba © (2007-03-07 18:49) [35]
> wahnsinng © (07.03.07 18:09) [34]
>
>
> > Loginov Dmitry
>
> Да я уже сам нашел.
>
Это самое, или еще что-то другое?
← →
Belorus © (2007-03-07 18:52) [36]Можете говорить что хотите, но я отчасти солидарен с Elen. Например свои процедуры я никогда не называю именами других существующих процедур, и уж тем более если набор аргументов совпадает...
Это привычка которой уже много лет. Видимо когда то помогало не путататься в "пространствах имен", и избегать глупых ошибок.
← →
Kedge © (2007-03-07 19:35) [37]Полностью согласен с Belorus и Elen.
Особенно большое удовольствие доставляет разбираться в чужих исходниках, ничего не понимая
и, натолкнувшись на функцию автора SetLength, произносить А-а-а-а-а !
← →
wahnsinng © (2007-03-09 08:39) [38]Amoeba
>if PL.ComponentCount <> 0
> then
> while Pl.ControlCount > 0 do
> Pl.Components[0].Destroy;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.04.01;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.044 c