![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Всем доброго времени суток!
При запуске программы начала выскакивать ошибка: raised exception class EListError with message 'List index out of bounds(2)' ![]() Код:
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {GForm},
Unit2 in 'Unit2.pas' {IForm1},
Unit3 in 'Unit3.pas' {IForm2},
Unit4 in 'Unit4.pas' {IForm3};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TGForm, GForm);
> Application.CreateForm(TIForm1, IForm1);
Application.CreateForm(TIForm2, IForm2);
Application.CreateForm(TIForm3, IForm3);
Application.Run;
end.Не могу понять в чём может быть проблема. Прошу более опытных пользователей помочь ![]() |
|
#2
|
||||
|
||||
|
Где то перебрал с массивом, например обратился к несуществующему элементу массива типа:
Код:
var Arr[1..10] of byte; begin s := Arr[11];//Как вариант end; String - массив символов Memo - массив строк StringGrid - 2-мерный массив строк Часто такое бывает в таком виде Код:
for i := 0 to Length(s) do //s : string a := s[i];//так как нумерация с нуля, то если длина 10, последний элемент 9 Код:
for i := 0 to Length(s)-1 do a := s[i]; |
|
#3
|
|||
|
|||
|
Массива в программе нет. В чём собственно и вся магия
|
|
#4
|
||||
|
||||
|
Падает метод Create у первой формы, там и ищи.
|
|
#5
|
|||
|
|||
|
Aristarh Dark, а можно по конкретней?) Где искать то?)
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, DB, ADODB, Grids, DBGrids, ComCtrls, XPMan,
RpDefine, RpRave;
type
TGForm = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
ADOTable1: TADOTable;
ADOTable2: TADOTable;
DataSource2: TDataSource;
DBGrid2: TDBGrid;
ADOTable3: TADOTable;
DataSource3: TDataSource;
DBGrid3: TDBGrid;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
pe_06: TEdit;
pe_07: TEdit;
pe_08: TEdit;
pe_09: TEdit;
pe_10: TEdit;
pe_11: TEdit;
pe_12: TEdit;
pe_13: TEdit;
pe_14: TMemo;
pe_15: TMemo;
pe_16: TMemo;
pe_17: TMemo;
pe_18: TMemo;
pe_19: TMemo;
pe_20: TMemo;
pe_21: TMemo;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
pe_22: TEdit;
Label19: TLabel;
pe_23: TEdit;
pe_24: TEdit;
pe_25: TEdit;
pe_26: TEdit;
pe_27: TEdit;
pe_28: TEdit;
pe_29: TEdit;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
Label24: TLabel;
Label25: TLabel;
Label26: TLabel;
Label27: TLabel;
Label28: TLabel;
Label29: TLabel;
pe_30: TEdit;
Label30: TLabel;
pe_31: TEdit;
pe_32: TEdit;
Label31: TLabel;
Label32: TLabel;
pe_33: TMemo;
Label33: TLabel;
pe_34: TEdit;
pe_36: TEdit;
Label34: TLabel;
Label35: TLabel;
Label36: TLabel;
pe_01: TEdit;
pe_03: TEdit;
pe_02: TEdit;
pe_04: TEdit;
pe_35: TEdit;
pe_05: TEdit;
Button9: TButton;
RvProject1: TRvProject;
ADOConnection1: TADOConnection;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
GForm: TGForm;
implementation
uses Unit2, Unit3, Unit4;
{$R *.dfm}
//код
end. |
|
#6
|
||||
|
||||
|
А чё где искать то?
Код то где? ![]() |
|
#7
|
||||
|
||||
|
Ищи тут)))
Цитата:
|
|
#8
|
|||
|
|||
|
W1ndow, дело в том что ошибка начала вылетать после того как я всего навсего отключил бд, изменил структуру 2х таблиц и подключил сново. Т.е. код я вообще не менял.
|
|
#9
|
||||
|
||||
|
Цитата:
Это то здесь при чём? Ошибка возникает когда выполняется код программный, а если ты его не даёшь как понять где ошибка. |
|
#10
|
|||
|
|||
|
Вот листинг основной формы
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, DB, ADODB, Grids, DBGrids, ComCtrls, XPMan,
RpDefine, RpRave;
type
TGForm = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
ADOTable1: TADOTable;
ADOTable2: TADOTable;
DataSource2: TDataSource;
DBGrid2: TDBGrid;
ADOTable3: TADOTable;
DataSource3: TDataSource;
DBGrid3: TDBGrid;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
pe_06: TEdit;
pe_07: TEdit;
pe_08: TEdit;
pe_09: TEdit;
pe_10: TEdit;
pe_11: TEdit;
pe_12: TEdit;
pe_13: TEdit;
pe_14: TMemo;
pe_15: TMemo;
pe_16: TMemo;
pe_17: TMemo;
pe_18: TMemo;
pe_19: TMemo;
pe_20: TMemo;
pe_21: TMemo;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
pe_22: TEdit;
Label19: TLabel;
pe_23: TEdit;
pe_24: TEdit;
pe_25: TEdit;
pe_26: TEdit;
pe_27: TEdit;
pe_28: TEdit;
pe_29: TEdit;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
Label24: TLabel;
Label25: TLabel;
Label26: TLabel;
Label27: TLabel;
Label28: TLabel;
Label29: TLabel;
pe_30: TEdit;
Label30: TLabel;
pe_31: TEdit;
pe_32: TEdit;
Label31: TLabel;
Label32: TLabel;
pe_33: TMemo;
Label33: TLabel;
pe_34: TEdit;
pe_36: TEdit;
Label34: TLabel;
Label35: TLabel;
Label36: TLabel;
pe_01: TEdit;
pe_03: TEdit;
pe_02: TEdit;
pe_04: TEdit;
pe_35: TEdit;
pe_05: TEdit;
Button9: TButton;
RvProject1: TRvProject;
ADOConnection1: TADOConnection;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
GForm: TGForm;
implementation
uses Unit2, Unit3, Unit4;
{$R *.dfm}
procedure TGForm.FormCreate(Sender: TObject);
begin
//==Ширина столбцов в таблицах==<
DBGrid1.Columns[0].Width:=30;
DBGrid1.Columns[1].Width:=60;
DBGrid1.Columns[2].Width:=100;
DBGrid1.Columns[3].Width:=435;
DBGrid1.Columns[4].Width:=50;
DBGrid1.Columns[5].Width:=160;
DBGrid2.Columns[0].Width:=500;
DBGrid2.Columns[2].Width:=335;
DBGrid3.Columns[0].Width:=120;
DBGrid3.Columns[1].Width:=220;
DBGrid3.Columns[2].Width:=185;
DBGrid3.Columns[3].Width:=60;
DBGrid3.Columns[4].Width:=80;
DBGrid3.Columns[5].Width:=80;
DBGrid3.Columns[6].Width:=80;
//====>
end;
procedure TGForm.Button1Click(Sender: TObject);
var i: integer;
begin
//=====Обновляем поисковые базы=====<
IForm1.DBComboBox2.Items.Clear;
IForm1.DBComboBox2.DataSource:=GForm.DataSource2;
with ADOTable2 do
begin
Open;
First;
while not EOF do
begin
IForm1.DBComboBox2.items.add(FieldByName('Адрес').AsString);
next;
end;
end;
IForm1.DBComboBox2.DataSource:=GForm.DataSource1;
//================>
ADOTable1.Append;
IForm1.Visible:=true;
GForm.Enabled:=false;
end;
procedure TGForm.Button3Click(Sender: TObject);
begin
ADOTable2.Append;
IForm2.Visible:=true;
GForm.Enabled:=false;
end;
procedure TGForm.Button2Click(Sender: TObject);
begin
ADOTable1.Delete;
end;
procedure TGForm.Button5Click(Sender: TObject);
begin
if MessageDlg('Вы действительно хотите удалить строку?',mtConfirmation,
[mbYes,mbNo],0)=mrNo then exit else ADOTable2.Delete;
end;
procedure TGForm.Button4Click(Sender: TObject);
begin
ADOTable2.Edit;
IForm2.Visible:=true;
GForm.Enabled:=false
end;
procedure TGForm.Button6Click(Sender: TObject);
begin
ADOTable3.Append;
IForm3.Visible:=true;
GForm.Enabled:=false;
end;
procedure TGForm.Button7Click(Sender: TObject);
begin
ADOTable3.Edit;
IForm3.Visible:=true;
GForm.Enabled:=false
end;
procedure TGForm.Button9Click(Sender: TObject);
begin
RvProject1.Open;
RvProject1.SelectReport('Report1', false);
RvProject1.SetParam('rr_01', pe_01.Text);
RvProject1.SetParam('rr_02', pe_02.Text);
RvProject1.SetParam('rr_03', pe_03.Text);
RvProject1.SetParam('rr_04', pe_04.Text);
RvProject1.SetParam('rr_05', pe_05.Text);
RvProject1.SetParam('rr_06', pe_06.Text);
RvProject1.SetParam('rr_07', pe_07.Text);
RvProject1.SetParam('rr_08', pe_08.Text);
RvProject1.SetParam('rr_09', pe_09.Text);
RvProject1.SetParam('rr_10', pe_10.Text);
RvProject1.SetParam('rr_11', pe_11.Text);
RvProject1.SetParam('rr_12', pe_12.Text);
RvProject1.SetParam('rr_13', pe_13.Text);
RvProject1.SetParam('rr_14', pe_14.Text);
RvProject1.SetParam('rr_15', pe_15.Text);
RvProject1.SetParam('rr_16', pe_16.Text);
RvProject1.SetParam('rr_17', pe_17.Text);
RvProject1.SetParam('rr_18', pe_18.Text);
RvProject1.SetParam('rr_19', pe_19.Text);
RvProject1.SetParam('rr_20', pe_20.Text);
RvProject1.SetParam('rr_21', pe_21.Text);
RvProject1.SetParam('rr_22', pe_22.Text);
RvProject1.SetParam('rr_23', pe_23.Text);
RvProject1.SetParam('rr_24', pe_24.Text);
RvProject1.SetParam('rr_25', pe_25.Text);
RvProject1.SetParam('rr_26', pe_26.Text);
RvProject1.SetParam('rr_27', pe_27.Text);
RvProject1.SetParam('rr_28', pe_28.Text);
RvProject1.SetParam('rr_29', pe_29.Text);
RvProject1.SetParam('rr_30', pe_30.Text);
RvProject1.SetParam('rr_31', pe_31.Text);
RvProject1.SetParam('rr_32', pe_32.Text);
RvProject1.SetParam('rr_33', pe_33.Text);
RvProject1.SetParam('rr_34', pe_34.Text);
RvProject1.SetParam('rr_35', pe_35.Text);
RvProject1.SetParam('rr_36', pe_36.Text);
RvProject1.Execute;
RvProject1.Close;
end;
procedure TGForm.Button8Click(Sender: TObject);
begin
if MessageDlg('Вы действительно хотите удалить строку?',mtConfirmation,
[mbYes,mbNo],0)=mrNo then exit else ADOTable3.Delete;
end;
end. |
|
#11
|
||||
|
||||
|
А лучше засунь весь проект в архив вместе таблицами и объясни что хочешь сделать, тогда будет реальный шанс исправить ошибку
|
|
#12
|
|||
|
|||
|
Добавил архив
|
|
#13
|
||||
|
||||
|
Ошибка находится в процедуре создания формы, ты пытаешься присвоить размер колонкам которых не существует, от сюда и ошибка. Сделай всё это в статическом режиме, тогда и кода будет меньше и ошибки этой не будет.
Как это сделать? В статическом режиме активизируешь таблицу(открываешь) Жмёшь 2 раза на DBGrid, жмёшь кнопку Add All Fields и там уже назначаешь имена колонкам их размер и так далее. |
|
#14
|
|||
|
|||
|
W1ndow, огромное спасибо за помощь
![]() |