Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка access violation at adress


Godod ©   (2011-02-02 12:24:00) 

Собственно вылазит эта ошибка при нажатии на кнопку, за которой прикреплен код:
[CODE]procedure TForm1.SnapshotClick(Sender: TObject);

var
i,j:integer; VideoName:WideString;
begin
if not working then
begin
Timer1.Tag:=0;
if RadioButton2.Checked=True then
begin
 FilterGraph.Stop;
 if OpenDialog.Execute then
 begin
   FilterGraph.Active := False;
   FilterGraph.Active := true;
   VideoName:=OpenDialog.FileName;
   if videoname<>'' then
   FilterGraph.RenderFile(OpenDialog.FileName);
 end else exit;
end;

if radiobutton1.Checked then
begin
if combobox1.ItemIndex<>-1 then
    OnSelectDevice
else
begin
showmessage('Пожалуйста выберите устройство ввода!');
exit;
end;
end;

 //для кнопки перевёртыша
 working:=true;
 Snapshot.Caption:='Окончить вычисление траектории';

x1:=0;
x2:=0;
y1:=0;
y2:=0;
point_num:=0;

for j:=1 to Image3.Picture.Height  do
for i:=1 to Image3.Picture.Width do
Image3.Canvas.Pixels[i,j]:=clWhite;

   FilterGraph.Play;
   FilterGraph.Volume:=0;

 if (radiobutton1.Checked) and (SpinEdit_pr.Value<>0) then
 begin
 cooltrayicon1.ShowBalloonHint('SnapSHot','Прогрев камеры...',bitInfo,10);
 delay(SpinEdit_pr.Value*1000);
 end;

  Timer1.Enabled:=true;
  cooltrayicon1.ShowBalloonHint('SnapSHot','Определение траектории начато!', bitInfo,10);

 end
  else
 begin
 //для кнопки перевёртыша
 working:=false;
 Snapshot.Caption:='Начать вычисление траектории';
 cooltrayicon1.ShowBalloonHint('SnapSHot','Определение траектории окончено!',bitInfo,10);
 timer1.Enabled:=false;
 for i:=1 to point_num do
 Image3.Canvas.TextOut(points[i].x+2*pen_Width.Value,points[i].y,inttostr(i));
 FilterGraph.Stop;
 FilterGraph.ClearGraph;
 end;
end;[/CODE]

На форуме уже есть темы с подобными ошибка, да и в гугле их куча, но, к сожалению, почти все перепробовал, но ничего не помогает, может быть вы поможете.
При нажатии на кнопку вылазит окно, где ты выбираешь видео, по которому нужно начертить график(по лазеру на видео), а если выбрана камера, тогда по камере
При прогоне через дебагер, выдается ошибка в файле DSPack в строчке:
[CODE]if Succeeded(QueryInterface(IMediaControl, MediaControl)) then[/CODE]
в моем коде запускается файл dspack после строчки:
[CODE]begin
 FilterGraph.Stop;[/CODE]
А в процессоре ругается на строчку:
[CODE]ntdll.KiFastSystemCallRet:
778564F4 C3               ret [/CODE]

Теперь после за комментирования строки
[CODE]FilterGraph.Stop;[/CODE]
появляется окошко выбора видео, но все равно когда выбираешь видео, оно выдает ту же ошибку и при закрытии тоже.


Anatoly Podgoretsky   (2011-02-02 22:15:00) [1]

> Ega23  (02.02.2011 13:39:09)  [9]

Out of bounds будет если разрешена проверка диапазонов, по умолчанию
запрещена (необоснованно).


Ega23   (2011-02-02 13:39:00) [2]


> Выход за границы основная причина AV

О как. Проверил. Думал должно что-то типа Out of bounds сгенерироваться. Ан фигушки...
Спасибо, буду иметь ввиду.


Godod   (2011-02-02 13:38:00) [3]

Спасибо, буду пробовать дальше


Anatoly Podgoretsky   (2011-02-02 13:28:00) [4]

> Ega23  (02.02.2011 12:51:05)  [5]

Выход за границы основная причина AV, кроме неинициализированых и попорченых
указателей.


Dennis I. Komarov   (2011-02-02 12:52:00) [5]


> Ega23 ©   (02.02.11 12:31) [3]

А чего ты хотел от нынешнего образования? Хорошо хоть так :)


Ega23   (2011-02-02 12:51:00) [6]


> Может выход за границы в массиве points?

Выход за границы - это не AV.


И. Павел   (2011-02-02 12:48:00) [7]


for i:=1 to point_num do
 Image3.Canvas.TextOut(points[i].x+2*pen_Width.Value,points[i].y,inttostr(i));


Может выход за границы в массиве points?


Ega23   (2011-02-02 12:31:00) [8]

for j:=1 to Image3.Picture.Height  do
for i:=1 to Image3.Picture.Width do
Image3.Canvas.Pixels[i,j]:=clWhite;

Н-да...


Ega23   (2011-02-02 12:30:00) [9]


> Извините, чтобы не писать заново все, я скопировал с другого
> форума, но забыл изменить теги:(

Думаешь, от этого твой "код" стал читабельнее? Отформатирую как надо, в комментарии укажи точную строку на которой AV выпадает.
Сейчас что-то понять просто невозможно. Да и код ужасен.


Godod   (2011-02-02 12:26:00) [10]

Извините, чтобы не писать заново все, я скопировал с другого форума, но забыл изменить теги:(


Наверх

Титульная страница Поиск, карта сайта Написать письмо