![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка [D7, WinXP]
wahnsinng © (2007-03-06 15:06:00)Здравствуйте уважаемые мастера,
не подскажите что за ошибка выскакивает
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;
wahnsinng (2007-03-06 16:10:00) [21]
> Сергей
Я ничего не утверждаю, потом как, говорил выше незнаю что за ошибка, делаю предположение.
Elen (2007-03-06 16:08:00) [22]
> Чтой-то вдруг ?)
Да процедурка такая уж есть. Лично я стараюсь не называть переменные и иже с ними именами которые уже чему-то приписаны.
Сергей М. (2007-03-06 16:05:00) [23]
> некошерное
Чтой-то вдруг ?)
Elen (2007-03-06 16:04:00) [24]
> При пошаговой отладке, он не разу не выдал ошибку, при нормальном
> запуске, начинает выскакивать ошибка описанная в начале.
Это ты весь полностью код привел или нет?
Elen (2007-03-06 16:02:00) [25]
> New : TControl;
Ой какое имя некошерное!.
Сергей М. (2007-03-06 16:00:00) [26]т.е ты утверждаешь, что код вида
TspeedButton(New).Caption :=s1;?
ShowMessage('Перед обращением к св-ву Parent');// <!Ошибка здесь!>
New.Parent:=PL;
ShowMessage('После обращением к св-ву Parent');
выводит на экран не иначе как ' Передобращением к св-ву Parent' ?
Сергей М. (2007-03-06 15:52:00) [27]
> Отследил ошибку
Эт каким же макаром ? ShowMessage() что ли расставлял ?
wahnsinng (2007-03-06 15:52:00) [28]Да
wahnsinng (2007-03-06 15:27:00) [29]
> Ну и с чего ты взял, что ошибка возникает именно в упомянутом
> тобой месте ?
Отследил ошибку
Плохиш (2007-03-06 15:27:00) [30]
> wahnsinng © (06.03.07 15:22) [7]
> Что вообще означает эта ошибка.
Попытка залезть своими кривыми ручёнками в закрытую/нераспределённую область памяти.
Сергей М. (2007-03-06 15:26:00) [31]
> при нормальном запуске, начинает выскакивать ошибка описанная
> в начале
Ну и с чего ты взял, что ошибка возникает именно в упомянутом тобой месте ?
> Что вообще означает эта ошибка
Ошибка нарушения прав доступа к странице вирт.памяти по такому-то адресу.
wahnsinng (2007-03-06 15:22:00) [32]Что вообще означает эта ошибка.
wahnsinng (2007-03-06 15:21:00) [33]При пошаговой отладке, он не разу не выдал ошибку, при нормальном запуске, начинает выскакивать ошибка описанная в начале.
Сергей М. (2007-03-06 15:13:00) [34]Что значит "перед" ?
У тебя есть отладчик, он позволяет пошаговоисполнять операторы программы ..
Плохиш (2007-03-06 15:12:00) [35]
> wahnsinng © (06.03.07 15:06)
Ты серьёзно думаешь, что здесь филиал отладчика?
wahnsinng (2007-03-06 15:12:00) [36]причем через раз, то работает, то ошибка
wahnsinng (2007-03-06 15:09:00) [37]Программа останавливается перед New.Parent:=PL;
Сергей М. (2007-03-06 15:08:00) [38]
> <!Ошибка здесь!>
На пустой строке ?)