• delphi制作登陆窗体


    delphi登陆窗体的制作,就我知道的,可以有两种方法,一种是在工程文件中实现登陆窗体的动态调用,另一种就是在主窗体的OnCreate事件中动态创建登陆窗体,两种方法都需要将主窗体设置为Auto-create form,将登陆窗体设置为 Availabel form.

    登陆窗体: Form1;   主窗体: Mainfrm;

    一.在工程文件中实现动态创建登陆窗体(网上资料提供):
      可以在Form1中Public部分添加一个变量,可以是integer类型,或者boolean型,用来判断是什么时候可以让主窗体显示,类似:

        public
        frm_show : integer;

    登陆窗体中,"登陆"按钮的实现:(关于密码和用户名的判断部分只做简单设置)

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      with query1 do
      begin
        close;
        sql.Clear;
        sql.Add('select * from login where username=:username and password=:password');
        parambyname('username').AsString := trim(edit1.Text);
        parambyname('password').AsString :=  trim(edit2.Text);
        open;
        if isempty then
        begin
          showmessage('请核对您的用户名和密码信息!');
          frm_show := 0;
        end
        else
        begin
           frm_show:= 1;//当成功时,frm_show设置为1,之后form1也将关闭.
           form1.Close;
        end;
      end;
    end;
      
    再看看工程文件:(project -> view soruce)
    program Project1;

    uses
      Forms,
      Unit1 in 'Unit1.pas' {Form1},
      mainfrm in 'mainfrm2.pas' {Form2};

    {$R *.res}

    begin
      Application.Initialize;
      form1 := tform1.Create(application);
      form1.ShowModal;
      if form1.frm_show = 1 then//frm_show设置为public,可在此调用
        Application.CreateForm(Tmainfrm2, mainfrm2);
      Application.Run;
    end.

    上述方法不牵涉主窗体代码部分.

    二.在主窗体的OnCreate事件部分添加对登陆窗体的动态创建:
    主窗体:
    procedure Tmainfrm.FormCreate(Sender: TObject);
    begin
      form1 := tform1.Create(application);
      form1.ShowModal;
    end;
    登陆窗体:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      with query1 do
      begin
        close;
        sql.Clear;
        sql.Add('select * from login where username=:username and password=:password');
        parambyname('username').AsString := trim(edit1.Text);
        parambyname('password').AsString :=  trim(edit2.Text);
        open;
        if isempty then
          showmessage('请核对您的用户名和密码信息!')
        else
          form1.Close;
      end;
    end;

    上述的两种方法是借一位网友的问题才想起来做的.一开始我使用的第二种方法,可是运行的时候总提示内存不够等问题.换了第一种方法运行ok后再换用第二种方法后竟然也运行ok~这破电脑是该换了...

  • 相关阅读:
    jquery ajax参数详解
    压缩解压函数实现
    WCF 大数据量如何从服务端传到客户端
    [DllImport("kernel32.dll")]
    Oracle数据库使用基础和实例
    Js常用的动态效果
    Js使用正则实现表单验证
    Oracle数据库理论知识
    HTML5,CSS3,JavaScript基础知识与使用
    速读《人月神话》
  • 原文地址:https://www.cnblogs.com/jijm123/p/7856965.html
Copyright © 2020-2023  润新知