|
Вопрос # 5 341/ вопрос решён / |
|
Здравствуйте, уважаемые эксперты!
Выскакивает ошибка при нажатии на кнопку
delphi Project Project1.exe raised exception class eaccessviolation with message access violation at address 0046DDBB in module 'Project1.exe'. Write of address 00000070
в 60 строке останавливается
в приложении прикладываю код
надеюсь на помощь =-)
Приложение: Переключить в обычный режим- unit Unit2;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls,Buttons, Spin;
-
- type
- TForm2 = class(TForm)
- Label1: TLabel;
- Label2: TLabel;
- SEStrings: TSpinEdit;
- SECalums: TSpinEdit;
- Button1: TButton;
- procedure Button1Click(Sender: TObject);
-
-
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- TKletka=class(TBitBtn)
- end;
-
- var
- Form2: TForm2;
-
-
- masKl:array of array of TKletka;
-
-
-
-
- implementation
-
- {$R *.dfm}
-
- procedure TForm2.Button1Click(Sender: TObject);
- begin
- randomize;
- n:=SEStrings.Value;
- m:= SECalums.Value;
-
-
- for j:=2 to m do
- mas[j,i]:=random(2);
-
- for j:= m to 18 do
- mas[j,i]:=3;
-
- SetLength(masKl,m,n);
- LevOtst:=10;
- VerhOtst:=25;
- for i := 2 to n do
- for j:=2 to m do
- begin
-
- masKl[j,i].parent:=self;
- masKl[j,i].top:=VerhOtst;
- masKl[j,i].left:=LevOtst+65;
- masKl[j,i].height:=33;
- masKl[j,i].width:=33;
- if mas[j,i]=0 then
- masKl[j,i].color:=clBlack
- else masKl[j,i].color:=clWhite;
-
- if j=m then
- begin
- LevOtst:=10;
- VerhOtst:=VerhOtst+25;
- end;
-
- end;
-
- end;
-
- end.
 |
Вопрос задала: Haenta (статус: Посетитель)
Вопрос отправлен: 29 мая 2011, 23:22
Состояние вопроса: решён, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 6; последнее сообщение — 29 мая 2011, 23:59; участников в обсуждении: 2.
|
Шичко Игорь (статус: 9-ый класс), 29 мая 2011, 23:27 [#1]:
Нумерация в массивах, как правило, по умолчанию идет с 0.
Поэтому должно буть где-то так:
...
57. for i := 2 to n-1 do
58. for j:=2 to m-1 do
...
|
|
Шичко Игорь (статус: 9-ый класс), 29 мая 2011, 23:30 [#2]:
Если необходимо заполнение со второго элемента до окончания, то соответственно:
57. for i := 1 to n-1 do
58. for j:=1 to m-1 do
|
|
Haenta (статус: Посетитель), 29 мая 2011, 23:35 [#3]:
заработало урааааа)))
только теперь всего одна кнопка выводится =-(
не подскажете как все вывести?
А кофе на клавиатуру тоже вирус пролил?
|
|
Haenta (статус: Посетитель), 29 мая 2011, 23:39 [#4]:
if j=m-1 then
begin
LevOtst:=10;
VerhOtst:=VerhOtst+33;
изменила на это и теперь есть 4 в столбик если выбрать 6 в едитах
исправила еще
for i := 0 to n-1 do
for j:=0 to m-1 do
теперь в столбец выводи сколько нужно и все больше ничего
А кофе на клавиатуру тоже вирус пролил?
|
|
Шичко Игорь (статус: 9-ый класс), 29 мая 2011, 23:53 [#5]:
Цитата:
только теперь всего одна кнопка выводится =-(
не подскажете как все вывести?
проблема решилась или вопрос остался?
|
|
Haenta (статус: Посетитель), 29 мая 2011, 23:59 [#6]:
Шичко Игорь:
> проблема решилась или вопрос остался?
всё решилось, спасибо =-)
А кофе на клавиатуру тоже вирус пролил?
|
30 мая 2011, 00:01: Статус вопроса изменён на решённый (изменил автор вопроса — Haenta)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|