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~这破电脑是该换了...

delphi制作登陆窗体的更多相关文章

  1. Delphi制作DLL

    一.开使你的第一个DLL专案 1.File->Close all->File->New﹝DLL﹞ 代码: //自动产生Code如下 library Project2; //这有段废话 ...

  2. Delphi制作图像特殊显示效果

    Delphi制作实现图像的各种显示效果,比如百叶窗.渐变.淡入淡出.水平交错.雨滴效果等,用鼠标点击“打开图像”按钮,可以选择图像文件导入到窗体中:点击其它各个按钮,可以实现图像显示特效,例如:点击“ ...

  3. 用Delphi制作DLL

    一.开使你的第一个DLL专案  1.File->Close all->File->New﹝DLL﹞代码: //自动产生Code如下  library Project2;  //这有段 ...

  4. Delphi : 制作程序启动欢迎界面

    制作欢迎界面的代码,大家参考 登陆窗体命名為:loginform.找到工程文件(Project -> View Source),找到如下代碼部分:begin   Application.Init ...

  5. C# WinForm 关闭登陆窗体后进程还再内存怎么办?

    问题:我们通常再制作WinForm应用程序的时候,运行程序的第一个窗口一般是登陆窗口.代码如下: 那么这种方式有一个弊端,这种启动方式,其实就是把登陆窗口设置为主窗体.因此,再登陆后,我们通常是调用H ...

  6. Delphi制作QQ自动登录器源码

    Delphi制作QQ自动登录器源码  http://www.cnblogs.com/sunsoft/archive/2011/02/25/1964967.html 以TM2009为例,检查了一下,未登 ...

  7. 无废话ExtJs 入门教程七[登陆窗体Demo:Login]

    无废话ExtJs 入门教程七[登陆窗体Demo:Login] extjs技术交流,欢迎加群(201926085) 在这节我们通过前几节讲的内容做一个登陆页面,把前几节讲的内容贯穿一下. 1.代码如下: ...

  8. C/S模式开发中如何利用WebBrowser控件制作导航窗体

    原文:C/S模式开发中如何利用WebBrowser控件制作导航窗体 转自: CSDN 相信不少同学们都做过MIS系统的开发,今天这里不讨论B/S模式开发的问题.来谈谈winform开发.用过市面上常见 ...

  9. Delphi中的窗体创建与销毁

    Delphi中的窗体,有模式窗体与非模式窗体两种.两种窗体的调用方式不同,模式窗体使用ShowModal显示,非模式窗体使用Show显示.当显示模式窗体的时候你是不能操作本程序的其他窗体的,你不能把焦 ...

随机推荐

  1. (三)Lua脚本语言入门(数组)

    又要找工作了,变的忧虑了,唯有学习才让内心变得踏实,今天玩了一下午的王者荣耀,正事都忘了...... 如果认为所谓的毅力是每分每秒的“艰苦忍耐”式的奋斗,那这是一种很不足的心理状态.毅力是一种习惯,毅 ...

  2. Iframe和Frame中实现cookie跨域的方法(转载)

    在Iframe和Frame中默认是不支持Cookie跨域的,但通过设置P3P协议相关的响应头可以解决这一问题.关于p3p协议: P3P: Platform for Privacy Preference ...

  3. 20155206 Exp8 WEB基础实践

    20155206 Exp8 WEB基础实践 基础问题回答 (1)什么是表单 表单在网页中主要负责数据采集功能. 一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以 ...

  4. [agc011C]Squared Graph-[二分图]

    Description 传送门 Solution 我们以下考虑的情况都是原图中非孤立的点. 题目要求新图的连通块个数.这个不好算,我们考虑计算新图的联通块内的特征点(x,y),即无法通过移动找到(t, ...

  5. [图片生成]使用VAEs生成新图片

    变分自动编码器生成图片 从隐图像空间进行采样以创建全新的图像或编辑现有图像是目前创作AI最受欢迎和最成功的应用方式. 图像隐空间取样 图像生成的关键思想是开发表示的低维潜在空间(自然是矢量空间),其中 ...

  6. ZeroMQ使用汇总

    ZeroMQ,史上最快的消息队列 —– ZMQ的学习和研究 ZeroMQ 的模式 [架构] ZeroMQ 深度探索(一)  消息队列ZeroMQ 服务端使用流程: void* m_Context; v ...

  7. coco2d-x游戏逻辑结构

    在Cocos2d-x中开发游戏的主要逻辑和结构是:先创建场景,在场景上添加一层或多层,然后可以在指定层上添加精灵.菜单.文字等,可以为精灵.文字执行某个动作(或者移动),检测玩家触屏事件,开启任务调度 ...

  8. [LOJ#2878]. 「JOISC 2014 Day2」邮戳拉力赛[括号序列dp]

    题意 题目链接 分析 如果走到了下行车站就一定会在前面的某个车站走回上行车站,可以看成是一对括号. 我们要求的就是 类似 代价最小的括号序列匹配问题,定义 f(i,j) 表示到 i 有 j 个左括号没 ...

  9. JavaScript快速入门-ECMAScript本地对象(Date)

    JavaScript中的Date 对象用于处理日期和时间. var myDate=new Date()  #Date 对象会自动把当前日期和时间保存为其初始值. 一.Date对象的方法 方法 示例 n ...

  10. python 游戏(猜单词Hangman)

    1.游戏思路和流程图 实现功能:随机一个单词让玩家猜测(后续难度实现修改为成语填空,成语必须要有提示,可修改猜的次数,增加连续猜成语,难度系数随着次数的增加而增加) 游戏流程图 2. 单词库和模块 i ...