如何在主Form出现之前,弹出密码验证From,Cancel就退出程序,Ok后密码正确才出现主Form
如何在主Form出现之前,弹出密码验证From,Cancel就退出程序,Ok后密码正确才出现主Form
本文地址 :CodeGo.net/5175478/
-------------------------------------------------------------------------------------------------------------------------
1.我给你一个LOGINFORM的例子:
unit LoginFrm;
interface
uses WinTypes, WinProcs, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ExtCtrls;
type
TLoginForm = class(TForm)
lblEnterPassword: TLabel;
lblEnterName: TLabel;
edtName: TEdit;
edtPassword: TEdit;
btnOK: TButton;
btnCancel: TButton;
public
end;
function GetLoginParams(ALoginParams: TStrings): Boolean;
implementation
{$R *.DFM}
function GetLoginParams(ALoginParams: TStrings): Boolean;
var
LoginForm: TLoginForm;
begin
Result := False;
LoginForm := TLoginForm.Create(Application);
try
if LoginForm.ShowModal = mrOk then
begin
ALoginParams.Values['USER NAME'] := LoginForm.edtName.Text;
ALoginParams.Values['PASSWORD'] := LoginForm.edtPassWord.Text;
Result := True;
end;
finally
LoginForm.Free;
end;
end;
end.
2. 自己先做个登录窗体
在工程文件里先USES 那个单元
再写......
Application.Initialize;
frmlogon:= Tfrmlogon.Create(Application);
frmlogon.ShowModal;
frmlogon.Update;
if frmlogon.ModalResult = mrOK then
begin
frmlogon.Free;
frmlogon.Hide;
Application.CreateForm(TForm1, Form1);
Application.Run;
end
3. procedure TLoginForm.btnLoginClick(Sender: TObject);
var
ComputerName: String;
CNameBuffer : PChar;
fl_loaded : Boolean;
CLen : ^DWord;
intLogin:Integer;
begin
//取得计算机名称
GetMem(CNameBuffer,255);
New(CLen);
CLen^:= 255;
fl_loaded := GetComputerName(CNameBuffer,CLen^);
if fl_loaded then
ComputerName := StrPas(CNameBuffer)
else
ComputerName := 'Unknown';
FreeMem(CNameBuffer,255);
Dispose(CLen);
//登录系统
if edtUser.Text='' then
begin
MessageBox(Self.Handle,'输入用户!','提示',MB_OK+MB_ICONEXCLAMATION);
edtUser.SetFocus;
exit;
end;
if ComboBox1.items.Count>0 then
begin
if ComboBox1.ItemIndex=-1 then
begin
MessageBox(Self.Handle,'选择帐套!','提示',MB_OK+MB_ICONEXCLAMATION);
ComboBox1.SetFocus;
exit;
end;
end;
//登录系统
if blnFirstLogin=False then dmlPreserve.scPreserve.AppServer.LogoutStatus(CurUserID);
dmlPreserve.scPreserve.AppServer.LoginStatus(edtUser.Text,edtPwd.Text,ComputerName,intLogin,curUserName);
Case intLogin of
0: //成功登录
begin
MessageBox(Self.Handle,'登录成功!','提示',MB_OK+MB_ICONEXCLAMATION);
Fini.WriteString('Preserve','LastUser',edtUser.Text);
Fini.WriteString('Preserve','LastAccount',ComboBox1.Text);
curAccount:=ComboBox1.Text;
MDIMainForm.sbrMain.Panels[3].Text:='当前帐套:'+ComboBox1.Text;
curUserID:=edtUser.Text;
MDIMainForm.sbrMain.Panels[2].Text:='操作用户:'+curUserName;
dmlPreserve.cdsusrUser.Close;
if blnFirstLogin=True then blnFirstLogin:=False;
Close;
end;
1:
begin
MessageBox(Self.Handle,'该用户不存在!','提示',MB_OK+MB_ICONEXCLAMATION);
edtUser.SetFocus;
end;
2:
begin
MessageBox(Self.Handle,'该用户不允许在此计算机上登录!','提示',MB_OK+MB_ICONEXCLAMATION);
edtUser.SetFocus;
end;
3:
begin
MessageBox(Self.Handle,'密码错误!','提示',MB_OK+MB_ICONEXCLAMATION);
edtPwd.SetFocus;
end;
4:
begin
MessageBox(Self.Handle,'该用户已经登录!','提示',MB_OK+MB_ICONEXCLAMATION);
edtUser.SetFocus;
end;
5:
begin
if MessageBox(Self.Handle,'该用户已经登录,是否强行登录?','提示',MB_YESNO+MB_ICONQUESTION)=mrNO then
edtUser.SetFocus;
end;
6:
begin
MessageBox(Self.Handle,'登录中遇到未知错误!','错误',MB_OK+MB_ICONEXCLAMATION);
edtUser.SetFocus;
end;
end;
end
4. procedure TMDIMainForm.MDIMainFormOnActivate(Sender: TObject);
begin
LoginForm:=TLoginForm.Create(Self);
LoginForm.ShowModal ;
end;
procedure TLoginForm.btnCancelClick(Sender: TObject);
begin
Application.Terminate
end
5. program Project1;
uses
Forms,
Dialogs,
Unit1 in 'Unit1.pas' {Form1};
{$R *.RES}
Var
Pass:String;
begin
Application.Initialize;
InputQuery('密码','输入密码',Pass);
if Pass<>'OK' then Application.Terminate;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
本文标题 :如何在主Form出现之前,弹出密码验证From,Cancel就退出程序,Ok后密码正确才出现主Form
本文地址 :CodeGo.net/5175478/
如何在主Form出现之前,弹出密码验证From,Cancel就退出程序,Ok后密码正确才出现主Form的更多相关文章
- iOS 沙盒购买,弹出“需要验证”,“继续登录”的问题?
点击购买后,能弹出 确认购买的对话框, 您想以xxx的价格买一个xxx吗? [environment:sandbox] 点击确认购买后,弹出"需要验证" 点击继续,输入密码后.竟然 ...
- 关于MFC主菜单和右键弹出菜单
一.主菜单.弹出菜单和右键菜单的概念: 主菜单是窗口顶部的菜单,一个窗口或对话框只能有一个主菜单,但是主菜单可以被更改(SetMenu()更改): 创建方式:CMenu::CreateMenu(voi ...
- Winform form窗体已弹出框的形式出现并回传值
From2(弹出框)回传数据到From1 Form1(数据接收form): public string Sstr; private void button1_Click(object sender, ...
- bootstrap popover 如何在hover状态移动到弹出上不消失
bootstrap中的popover其实就是对tooltip做了一定升级,拥有了标题和内容 概要 使用的时候依赖第三方插件 依赖tooltip插件 必须初始化 title 和 content 可以在p ...
- Duilib 实现右下角弹出像QQ新闻窗口,3秒后自动关闭(一)
转载:https://blog.twofei.com/667/ 自绘或子类化控件时,有时需要处理鼠标进入(MouseEnter)/鼠标离开(MouseLeave)/鼠标停留(MouseHover)消息 ...
- 使用form 表单 弹出登录框,只传递数据,不刷新界面
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Duilib 实现右下角弹出像QQ新闻窗口,3秒后窗口透明度渐变最后关闭,若在渐变过程中鼠标放到窗口上,窗口恢复最初状态(二)
效果: 1.定义两个个定时器ID #define ID_TIMER_DISPLAY_DELAY 30 #define ID_TIMER_DISPLAY_CLOSE 40 2.添加一个成员函数和成员变量 ...
- myeclipse新建jsp文件时弹出默认模板,怎么改成自己修改后的
(1)打开Window——Preferences (2)选择MyEclipse——Filed andEditors——JSP——JSP Source——Templates 看到右边的New Jsp编辑 ...
- Windows打开软件老是弹出无法验证发布者
使用组策略管理器 gpedit.msc 用户配置-管理模板-Windows组件-附件管理器-中等风险文件类型的包含列表 .exe;.cmd;.bat;.js即可
随机推荐
- SpringBoot实用技巧札记
目录 如何手工设置SpringBoot内嵌的Tomcat启动端口号(port) 如何解决Eclipse.Properties中文乱码的问题 如何手工设置SpringBoot内嵌的Tomcat启动端口号 ...
- JAVA框架Struts2--配置讲解
一.配置讲解: <struts> <package name="oop" namespace="/" extends="struts ...
- js 获取当前页url网址信息
转载地址:js如何准确获取当前页面url网址信息 摘录: 举例一个URL,然后获得它的各个组成部分:http://i.cnblogs.com/EditPosts.aspx?opt=1 1.window ...
- Liunx-cp命令
1. 复制当前目录的test文件夹 到/201904 目录 出现如下截图问题是因为test目录下还有文件,所以得加-r,使用递归拷贝.我现在用这个命令拷贝文件都加-r了,不管有文件还是没文件 2.复制 ...
- 网络对抗技术 2017-2018-2 20152515 Exp1 PC平台逆向破解(5)M
Exp1 PC平台逆向破解(5)M 1 知识要求 2 直接修改程序机器指令,改变程序执行流程 3 通过构造输入参数,造成BOF攻击,改变程序执行流 4 注入Shellcode并执行 1 知识要求 掌握 ...
- Getting Start chrome-extension demo
写一个小小的chrome扩展demo~ 准备工作 了解一下插件chrome-extension: 在应用商店里的插件基本上都是以.crx为文件后缀,该文件其实就是一个压缩包,包括插件所需要的html. ...
- Web安全基础实践
Web安全基础实践 标签(空格分隔): <> 目录 基础问题回答 WebGoat下载安装 SQL注入攻击 - SQL字符串注入(String SQL Injection) - 数字型SQL ...
- SQLAlchemy 关联表删除实验
本实验所用代码来源于官网文档 from sqlalchemy import Table, Column, Integer, String, ForeignKey from sqlalchemy.orm ...
- [CF1007D]Ants[2-SAT+树剖+线段树优化建图]
题意 我们用路径 \((u, v)\) 表示一棵树上从结点 \(u\) 到结点 \(v\) 的最短路径. 给定一棵由 \(n\) 个结点构成的树.你需要用 \(m\) 种不同的颜色为这棵树的树边染色, ...
- eclipse + maven + org.glassfish.jersey 创建 webapi
org.glassfish.jersey 和 com.sun.jersey 的区别是,jersy version 2 之前是 com.sun.jersy, 之后改名为 org.glassfish.je ...