您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Delphi >> 这段代码出现了什么问题,水平有限看不明白,请赐教!

这段代码出现了什么问题,水平有限看不明白,请赐教!

来源:网络整理     时间:2016/8/16 3:05:08     关键词:

关于网友提出的“ 这段代码出现了什么问题,水平有限看不明白,请赐教!”问题疑问,本网通过在网上对“ 这段代码出现了什么问题,水平有限看不明白,请赐教!”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 这段代码出现了什么问题,水平有限看不明白,请赐教!
描述:

这段的代码的错误提示为:
    raised exception class EListError with message'List index out of bounds(7)'
  请高手帮助看一下,谢谢!
  权限表qx的结构为:
    用户名  菜单1  菜单2  菜单3 .............................菜单n
unit loginroom;//系统的登陆窗体
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons;
type
  Troomlogin = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    BitBtn2: TBitBtn;
    BitBtn1: TBitBtn;
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
     private
    { Private declarations }
  public
{ Public declarations }
  end;
var
  roomlogin: Troomlogin;
  yhmi:string; //用户名
  yhma:string //密码
  i:integer;
implementation
uses datadm, roommain, pwdmodify;
{$R *.dfm}
procedure Troomlogin.BitBtn2Click(Sender: TObject);
begin
 application.Terminate;
end;
procedure Troomlogin.BitBtn1Click(Sender: TObject);
begin
if trim(edit1.Text)='' then
 begin
  showmessage('用户名不能为空!');
  edit1.SetFocus;
  exit;
 end;
if trim(edit2.Text)='' then
begin
 showmessage('用户密码不能为空');
 edit2.SetFocus;
 exit;
end;
with dm1.query1 do
   begin
    close;
    sql.Clear;
    sql.text:='select * from userinfo where 用户名=:a and 密码=:b';
    parameters.ParamByName('a').Value:=trim(edit1.Text);//取得登陆窗体中所输入的用户名
    parameters.ParamByName('b').Value:=trim(edit2.Text)//取得登陆窗体中所输入的密码
    open;
   end;
 if dm1.query1.RecordCount=1 then
  begin
    mainform.StatusBar1.Panels[1].Text:='操作员:'+trim(edit1.Text);
    yhmi:=trim(edit1.Text);
    yhma:=trim(edit2.Text);
    roomlogin.Close;
  end
 else
  begin
    showmessage('非法的登录信息,请重新输入');
    edit1.Clear;
    edit2.Clear;
    edit1.SetFocus;
  end;
  with dm1.query7 do //判断该用户所具有的权限
     begin
       close;
       sql.Clear;
       sql.add('select * from qx where 用户名=:loginid');//qx为权限表
       parameters.ParamByName('loginid').Value:=yhmi;
       open;
     end;
     for i:=1 to dm1.query7.FieldCount-1 do
        begin
           if dm1.query7.Fields[i].asinteger=1 then
              mainform.MainMenu1.Items[i].Visible:=false;//是不是这个地方有问题,我看不出来
        end;
 end;
end.


以上介绍了“ 这段代码出现了什么问题,水平有限看不明白,请赐教!”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3315057.html

相关图片

相关文章