list index out of bounds
时间:2011-11-07
来源:互联网
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, DB, ADODB, Grids, DBGrids, ToolWin,hotelmodual,
Menus;
type
TForm6 = class(TForm)
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ADOQuery1: TADOQuery;
ADOTable1: TADOTable;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
PageControl1: TPageControl;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
PopupMenu1: TPopupMenu;
procedure FormShow(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure ToolButton3Click(Sender: TObject);
procedure ToolBar1Click(Sender: TObject);
procedure ADOTable1AfterScroll(DataSet: TDataSet);
procedure ToolButton5Click(Sender: TObject);
procedure ToolButton6Click(Sender: TObject);
private
{ Private declarations }
pmark:integer;
function ptest():string;
public
{ Public declarations }
end;
var
Form6: TForm6;
implementation
uses Unit3;
{$R *.dfm}
procedure TForm6.ADOTable1AfterScroll(DataSet: TDataSet);
begin
edit1.Text:=adotable1.FieldByName('roomid').AsString;
edit2.Text:=adotable1.FieldByName('roomtype').AsString;
edit3.Text:=adotable1.FieldByName('tvor').AsString;
edit4.Text:=adotable1.FieldByName('airconditionaryor').AsString;
edit5.Text:=adotable1.FieldByName('netor').AsString;
edit6.Text:=adotable1.FieldByName('price').AsString;
edit1.ReadOnly:=true;
edit2.ReadOnly:=true;
edit3.ReadOnly:=true;
edit4.ReadOnly:=true;
edit5.ReadOnly:=true;
edit6.ReadOnly:=true;
pmark:=2;
end;
procedure TForm6.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
x,x1:integer;
tc:tcomponent;
begin
if not (ActiveControl is TDBGrid) then
begin
if (key=13)or(key=vk_down) then
begin
perform (WM_NEXTDLGCTL,0,0);
end;
if key=VK_UP then perform(WM_NEXTDLGCTL,1,0);
end;
end;
procedure TForm6.FormShow(Sender: TObject);
var
i:integer;
begin
adoquery1.Connection:=datamodule3.ADOConnection1;
adotable1.connection:=datamodule3.ADOConnection1;
adotable1.Close;
adotable1.TableName:='room';
adotable1.Open;
with dbgrid1 do
begin
columns.clear;
for i := 0 to 5 do columns.Add;
columns[0].Title.caption:='房间号';
columns[1].Title.caption:='房间类型';
columns[2].Title.caption:='是否有电视';
columns[3].Title.caption:='是否有空调';
columns[4].Title.caption:='是否有宽带';
columns[5].Title.caption:='价格';
columns[0].fieldname:='roomid';
columns[1].fieldname:='roomtype';
columns[2].fieldname:='tvor';
columns[3].fieldname:='airconditionaryor';
columns[4].fieldname:='netor';
columns[5].fieldname:='price';
columns[0].Width:=40;
columns[1].Width:=100;
columns[2].Width:=80;
columns[3].Width:=100;
columns[4].Width:=60;
columns[5].Width:=60;
for I := 0 to 5 do
begin
Columns[i].Title.Alignment:=tacenter;
end;
//options:=options-[dgediting];
end;
pagecontrol1.Pages[0].Caption:='房间信息';
pagecontrol1.activepageindex:=0;
dbgrid1.popupmenu:=popupmenu1;
pmark:=0;
end;
procedure TForm6.ToolBar1Click(Sender: TObject);
var
s,s1,s2:string;
n:integer;
begin
s:=ptest();
if(s='')then
begin
adotable1.AfterScroll:=nil;
n:=0;
if(pmark=1) then adotable1.Append;
adotable1.Edit;
adotable1.FieldByName('roomid').AsString:=trim(edit1.text);
adotable1.fieldbyname('roomtype').AsString:=trim(edit2.text);
adotable1.fieldbyname('tvor').AsString:=trim(edit3.Text);
adotable1.fieldbyname('airconditionaryor').AsString:=trim(edit4.text);
adotable1.fieldbyname('netor').AsString:=trim(edit5.text);
adotable1.fieldbyname('price').AsString:=trim(edit6.text);
adotable1.Post;
pmark:=2;
adotable1.AfterScroll:=adotable1.afterscroll;
end
else
begin
s:='数据验证发现以下错误:'+char(13)+s+char(13)+char(13)+'数据保存失败!';
application.MessageBox(pchar(s),'系统提示',0+16);
end;
end;
procedure TForm6.ToolButton1Click(Sender: TObject);
var
i:integer;
begin
for i := 1 to 6 do
begin
tedit(findcomponent('edit'+inttostr(i))).Text:='';
tedit(findcomponent('edit'+inttostr(i))).readonly:=false;;
end;
edit1.SetFocus;
pmark:=1;
pagecontrol1.ActivePageIndex:=0;
end;
procedure TForm6.ToolButton2Click(Sender: TObject);
var
i:integer;
s:string;
begin
for i:= 1 to 6 do
begin
s:='edit'+inttostr(i);
tedit(findcomponent(s)).ReadOnly:=false;
end;
edit1.readonly:=true;
pmark:=2;
end;
procedure TForm6.ToolButton3Click(Sender: TObject);
var
x:integer;
begin
if(adotable1.RecordCount>0) then
begin
x:=application.MessageBox(pchar('删除记录:'+trim(edit1.text)+char(13)+char(13)+'是否确定?'),'系统提示',4+32);
if(x=6)then adotable1.Delete;
end;
end;
procedure TForm6.ToolButton5Click(Sender: TObject);
begin
adotable1.Close;
adotable1.open;
end;
procedure TForm6.ToolButton6Click(Sender: TObject);
begin
form6.Close;
form3.show;
end;
function TForm6.ptest():string;
var
s1,s2,s3,s4,s5,s6,xerr:string;
x:double;
x1,x2:integer;
begin
//数据验证,错误信息存放在xerr中
xerr:='';
//判断数值型数据是否正确
x:=0;
s1:=trim(edit1.text);
s2:=trim(edit2.text);
s3:=trim(edit3.text);
s4:=trim(edit4.text);
s5:=trim(edit5.Text);
s6:=trim(edit6.Text);
begin
//验证产品编码是否唯一
adoquery1.close;
adoquery1.sql.text:='select 1 from room where roomid=p1';
adoquery1.Parameters.ParamByName('p1').Value:=s1;
adoquery1.Open;
if adoquery1.RecordCount>0 then xerr:=xerr+char(13)+'房间号码重复!';
end;
if (s1='') then xerr:=xerr+char(13)+'房间号码不能为空!';
if (s2='') then xerr:=xerr+char(13)+'房间类型不能为空!';
if (s6='') then xerr:=xerr+char(13)+'房间价格不能为空!';
result:=xerr;
end;
作者: cllmxy 发布时间: 2011-11-07
作者: LoveMit 发布时间: 2011-11-07
作者: ADSLAN 发布时间: 2011-11-07
作者: hongss 发布时间: 2011-11-08
作者: foxyy8888 发布时间: 2011-11-08
作者: funxu 发布时间: 2011-11-08
作者: w001001001001 发布时间: 2011-11-08
unit Unit6; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, DB, ADODB, Grids, DBGrids, ToolWin,hotelmodual, Menus; type TForm6 = class(TForm) ToolBar1: TToolBar; ToolButton1: TToolButton; ToolButton2: TToolButton; ToolButton3: TToolButton; ToolButton4: TToolButton; ToolButton5: TToolButton; ToolButton6: TToolButton; ADOQuery1: TADOQuery; ADOTable1: TADOTable; DBGrid1: TDBGrid; DataSource1: TDataSource; PageControl1: TPageControl; GroupBox1: TGroupBox; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; PopupMenu1: TPopupMenu; procedure FormShow(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure ToolButton3Click(Sender: TObject); procedure ToolBar1Click(Sender: TObject); procedure ADOTable1AfterScroll(DataSet: TDataSet); procedure ToolButton5Click(Sender: TObject); procedure ToolButton6Click(Sender: TObject); private { Private declarations } pmark:integer; function ptest():string; public { Public declarations } end; var Form6: TForm6; implementation uses Unit3; {$R *.dfm} procedure TForm6.ADOTable1AfterScroll(DataSet: TDataSet); begin edit1.Text:=adotable1.FieldByName('roomid').AsString; edit2.Text:=adotable1.FieldByName('roomtype').AsString; edit3.Text:=adotable1.FieldByName('tvor').AsString; edit4.Text:=adotable1.FieldByName('airconditionaryor').AsString; edit5.Text:=adotable1.FieldByName('netor').AsString; edit6.Text:=adotable1.FieldByName('price').AsString; edit1.ReadOnly:=true; edit2.ReadOnly:=true; edit3.ReadOnly:=true; edit4.ReadOnly:=true; edit5.ReadOnly:=true; edit6.ReadOnly:=true; pmark:=2; end; procedure TForm6.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); var x,x1:integer; tc:tcomponent; begin if not (ActiveControl is TDBGrid) then begin if (key=13)or(key=vk_down) then begin perform (WM_NEXTDLGCTL,0,0); end; if key=VK_UP then perform(WM_NEXTDLGCTL,1,0); end; end; procedure TForm6.FormShow(Sender: TObject); var i:integer; begin adoquery1.Connection:=datamodule3.ADOConnection1; adotable1.connection:=datamodule3.ADOConnection1; adotable1.Close; adotable1.TableName:='room'; adotable1.Open; with dbgrid1 do begin columns.clear; for i := 0 to 5 do columns.Add; columns[0].Title.caption:='房间号'; columns[1].Title.caption:='房间类型'; columns[2].Title.caption:='是否有电视'; columns[3].Title.caption:='是否有空调'; columns[4].Title.caption:='是否有宽带'; columns[5].Title.caption:='价格'; columns[0].fieldname:='roomid'; columns[1].fieldname:='roomtype'; columns[2].fieldname:='tvor'; columns[3].fieldname:='airconditionaryor'; columns[4].fieldname:='netor'; columns[5].fieldname:='price'; columns[0].Width:=40; columns[1].Width:=100; columns[2].Width:=80; columns[3].Width:=100; columns[4].Width:=60; columns[5].Width:=60; for I := 0 to 5 do begin Columns[i].Title.Alignment:=tacenter; end; //options:=options-[dgediting]; end; pagecontrol1.Pages[0].Caption:='房间信息'; pagecontrol1.activepageindex:=0; dbgrid1.popupmenu:=popupmenu1; pmark:=0; end; procedure TForm6.ToolBar1Click(Sender: TObject); var s,s1,s2:string; n:integer; begin s:=ptest(); if(s='')then begin adotable1.AfterScroll:=nil; n:=0; if(pmark=1) then adotable1.Append; adotable1.Edit; adotable1.FieldByName('roomid').AsString:=trim(edit1.text); adotable1.fieldbyname('roomtype').AsString:=trim(edit2.text); adotable1.fieldbyname('tvor').AsString:=trim(edit3.Text); adotable1.fieldbyname('airconditionaryor').AsString:=trim(edit4.text); adotable1.fieldbyname('netor').AsString:=trim(edit5.text); adotable1.fieldbyname('price').AsString:=trim(edit6.text); adotable1.Post; pmark:=2; adotable1.AfterScroll:=adotable1.afterscroll; end else begin s:='数据验证发现以下错误:'+char(13)+s+char(13)+char(13)+'数据保存失败!'; application.MessageBox(pchar(s),'系统提示',0+16); end; end; procedure TForm6.ToolButton1Click(Sender: TObject); var i:integer; begin for i := 1 to 6 do begin tedit(findcomponent('edit'+inttostr(i))).Text:=''; tedit(findcomponent('edit'+inttostr(i))).readonly:=false;; end; edit1.SetFocus; pmark:=1; pagecontrol1.ActivePageIndex:=0; end; procedure TForm6.ToolButton2Click(Sender: TObject); var i:integer; s:string; begin for i:= 1 to 6 do begin s:='edit'+inttostr(i); tedit(findcomponent(s)).ReadOnly:=false; end; edit1.readonly:=true; pmark:=2; end; procedure TForm6.ToolButton3Click(Sender: TObject); var x:integer; begin if(adotable1.RecordCount>0) then begin x:=application.MessageBox(pchar('删除记录:'+trim(edit1.text)+char(13)+char(13)+'是否确定?'),'系统提示',4+32); if(x=6)then adotable1.Delete; end; end; procedure TForm6.ToolButton5Click(Sender: TObject); begin adotable1.Close; adotable1.open; end; procedure TForm6.ToolButton6Click(Sender: TObject); begin form6.Close; form3.show; end; function TForm6.ptest():string; var s1,s2,s3,s4,s5,s6,xerr:string; x:double; x1,x2:integer; begin //数据验证,错误信息存放在xerr中 xerr:=''; //判断数值型数据是否正确 x:=0; s1:=trim(edit1.text); s2:=trim(edit2.text); s3:=trim(edit3.text); s4:=trim(edit4.text); s5:=trim(edit5.Text); s6:=trim(edit6.Text); begin //验证产品编码是否唯一 adoquery1.close; adoquery1.sql.text:='select 1 from room where roomid=p1'; adoquery1.Parameters.ParamByName('p1').Value:=s1; adoquery1.Open; if adoquery1.RecordCount>0 then xerr:=xerr+char(13)+'房间号码重复!'; end; if (s1='') then xerr:=xerr+char(13)+'房间号码不能为空!'; if (s2='') then xerr:=xerr+char(13)+'房间类型不能为空!'; if (s6='') then xerr:=xerr+char(13)+'房间价格不能为空!'; result:=xerr; end;
作者: warrially 发布时间: 2011-11-08
for i := 0 to 5 do columns.Add;-->>for i := 0 to 6 do columns.Add;
columns[0].Title.caption:='房间号';
columns[1].Title.caption:='房间类型';
columns[2].Title.caption:='是否有电视';
columns[3].Title.caption:='是否有空调';
columns[4].Title.caption:='是否有宽带';
columns[5].Title.caption:='价格';
作者: funxu 发布时间: 2011-11-08
作者: funxu 发布时间: 2011-11-08
作者: funxu1 发布时间: 2011-11-08
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28