Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 25.10.2011
Сообщений: 35

Access Violation

25.03.2012, 23:34. Показов 846. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Простенькая программа(Жизнь Конвея). Выдаёт ошибку(см. название темы). Вот код:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;
 
type
  TForm1 = class(TForm)
    Bevel1: TBevel;
    Button1: TButton;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  Pole: array [1..50, 1..50] of boolean;
  PPok: array[1..200, 1..2] of integer;
  BigBang: boolean;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
  var i, h, l: integer;
begin
  BigBang:=true;
  form1.Canvas.Pen.Color:=clblack;
  form1.Canvas.Brush.Color:=clBlack;
  for i:=1 to 200 do
    begin
      h:=random(49);
      l:=random(49);
      PPok[i, 1]:=l;
      PPok[i, 2]:=h;
    end;
  Timer1.Enabled:=true;
end;
 
procedure TForm1.FormPaint(Sender: TObject);
  var i, x, y, j: integer;
begin
  if BigBang then
    begin
      BigBang:=false;
      for i:=1 to 200 do
        begin
          x:=PPok[i, 1];
          y:=PPok[i, 2];
          Pole[x, y]:=true;
          Form1.Canvas.Rectangle(x*10, y*10, (x+1)*10, (y+1)*10);
        end;
    end;
  for i:=1 to 50 do
    for j:=1 to 50 do
      if Pole[i, j] then Form1.Canvas.Rectangle(i*10, j*10, (i+1)*10, (j+1)*10);
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  close;
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
  var i, j, kol: integer;
begin
  for i:=1 to 50 do
    for j:=1 to 50 do
      begin
        kol:=0;
 
        if Pole[i-1, j-1] then inc(kol);
        if Pole[i-1, j] then inc(kol);
        if Pole[i-1, j+1] then inc(kol);
        if Pole[i, j-1] then inc(kol);
        if Pole[i, j+11] then inc(kol);
        if Pole[i+1, j-1] then inc(kol);
        if Pole[i+1, j] then inc(kol);
        if Pole[i+1, j+1] then inc(kol);
 
        if Pole[i, j] then if (kol<2) or (kol>3) then Pole[i, j]:=false;
 
        if not(Pole[i, j]) then if kol=3 then Pole[i, j]:=true;
 
      end;
 
    for i:=1 to 50 do
    for j:=1 to 50 do
      if Pole[i, j] then Form1.Canvas.Rectangle(i*10, j*10, (i+1)*10, (j+1)*10);
 
end;
опытным путём удалось вычислить что ошибка возникает в этой части проги:
Delphi
1
2
3
4
5
6
7
8
9
10
11
  if BigBang then
    begin
      BigBang:=false;
      for i:=1 to 200 do
        begin
          x:=PPok[i, 1];
          y:=PPok[i, 2];
          Pole[x, y]:=true;
          Form1.Canvas.Rectangle(x*10, y*10, (x+1)*10, (y+1)*10);
        end;
    end;
ветераны, вуручайте новичка
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.03.2012, 23:34
Ответы с готовыми решениями:

Access violation at
Получаю ошибку http://*************/s/2S4GO Access violation at address 00432F84 на отрезке кода procedure...

Access violation
При запуске приложения в Dlphi 7 появляется такая ошибка &quot;Project Project1.exe raised exception class EAccessViolation with message 'Access...

Access violation
при повторном нажатии на кнопку вылетает ошибка SetLength(B,OperationCount); SetLength(C,OperationCount, OperationCount); //...

1
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
25.03.2012, 23:48
это исключение говорит о попытке использования неинициализированной области данных, тебе надо проконтролировать этот кусок кода
Delphi
1
2
3
x:=PPok[i, 1];
y:=PPok[i, 2];
Pole[x, y]:=true;
да и вообще прежде чем обращаться к элементу массива, неплохо и проверить данные на предмет выхода за пределы массива
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.03.2012, 23:48
Помогаю со студенческими работами здесь

Access violation
Подскажите почему вылетает ошибка var sg : TStringList; a : mas; f : Double; i : integer; begin if...

Access violation
Доброго времени суток. При запуске Form2 вылетает ошибка &quot;Access violation at address 0046A558&quot;. Подскажите, пожалуйста, как исправить? ...

Access violation
Здравствуйте, помогите исправить ошибку. Есть две формы на каждой StringGrids, данные в которые вводятся вручную. При записи этих данных в...

Access violation
Не могу понять почему выскакивает ошибка во время работы программы.

Access violation??
Всех с Новым Годом! Такая задача: у меня есть текстовый файл, в нем я расставил определенные знаки для того, чтобы при нажатии...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru