社区
C++ Builder
帖子详情
请教怎么制作程序的登录框
zhushow
2006-05-02 03:19:20
做一个软件的登录,Form1就是填用户名和密码,若正确则显示Form2,若错误则关闭。请达人指教……
...全文
142
4
打赏
收藏
请教怎么制作程序的登录框
做一个软件的登录,Form1就是填用户名和密码,若正确则显示Form2,若错误则关闭。请达人指教……
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
BlueDeepOcean
2006-05-03
打赏
举报
回复
针对新手而言,最简单、最直接的引领就是采用直观的办法:
设计两个Form,Form1和Form2。在Form1所在的.cpp文件中包括Form2的单元文件,即:#include"Form2的单元文件.h";
之后,我们让Form1作为程序的启动界面。(即是设置Form1无边框,上面存在一幅图片等)
在Form1中添加一个TTimer控件,设置其Interval为3000(即3秒)在Timer的OnTime事件中写入:“
Form1->Hide();
Form2->Show();
”
这样,在程序的启动界面停留在屏幕上3秒钟之后,就会自动隐藏,并将Form2显示出来。而Form2及时程序的主要功能所在的窗体。
stevenjscn
2006-05-02
打赏
举报
回复
//cpp---------------------------------------------------------------------------
void __fastcall TLoginForm::btnOKClick(TObject *Sender)
{
if(edtUser->Text.IsEmpty() )
{
MessageDlg("Please input the legal user name",
mtInformation,TMsgDlgButtons()<<mbOK,0);
edtUser->SetFocus();
return;
}
if(edtDBLocation->Text.IsEmpty())
{
MessageDlg("Please configure the database location",
mtInformation,TMsgDlgButtons()<<mbOK,0);
btnBrowse->SetFocus();
return;
}
AnsiString sCn, sDriver, sDBQ,sDateFrom,sDateTo,sFilter;
TRegistry *Reg=new TRegistry();
Reg->RootKey=HKEY_LOCAL_MACHINE;
Reg->OpenKey(ODBC_DRIVER,true);
sDriver=Reg->ReadString("Driver");
Reg->CloseKey();
sDBQ=edtDBLocation->Text;
Reg->RootKey=HKEY_CURRENT_USER;
Reg->OpenKey(ODBC_KEY,true);
Reg->WriteString("Driver",sDriver);
Reg->WriteString("DBQ",sDBQ);
Reg->WriteInteger("DriverID",25);
Reg->WriteString("FIL","MS Access");
Reg->WriteInteger("SafeTransactions",0);
Reg->WriteString("UID","");
sCn="Provider=MSDASQL.1;Password=751216steven;";
sCn+="Persist Security Info=True;Data Source=BIOCLOCK DSN;";
sDateFrom=DateTimeToStr(dtDateFrom->Date).SubString(1,10);
sDateTo=DateTimeToStr(dtDateTo->Date).SubString(1,10);
sFilter="[Date]>=#" + sDateFrom + "# AND [Date]<=#" + sDateTo + "#";
Reg->OpenKey(REG_KEY,true);
Reg->WriteString("CN",sCn);
Reg->WriteString("Filter",sFilter);
Reg->WriteString("DateFrom",sDateFrom);
Reg->WriteString("DateTo",sDateTo);
try
{
dmBC->cnBC->Close();
dmBC->cnBC->ConnectionString=sCn;
dmBC->cnBC->Open();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
return;
}
}
AnsiString sUser,sPswd,sSQL;
TADOQuery *qryTemp;
sUser=edtUser->Text;
sSQL="Select UserName,Password From Users Where UserName='" + sUser +"'";
qryTemp=new TADOQuery(this);
qryTemp->ConnectionString=sCn;
qryTemp->SQL->Clear();
qryTemp->SQL->Add(sSQL);
qryTemp->Open();
if(qryTemp->Eof)
{
MessageDlg("Illegal User!\nPlease contact administrator for useers configure.",
mtError,TMsgDlgButtons()<<mbOK,0);
qryTemp->Close();
delete qryTemp;
edtUser->SetFocus();
return;
}
else
{
sPswd=qryTemp->FieldByName("Password")->AsString;
}
qryTemp->Close();
delete qryTemp;
if(sPswd!=edtPswd->Text)
{
MessageDlg("Wrong Password!\nPlease try again.",
mtInformation,TMsgDlgButtons()<<mbOK,0);
edtPswd->SetFocus();
return;
}
AnsiString sRegCode,sCPUID;
int iRunTimes;
Reg->RootKey=HKEY_CURRENT_USER;
Reg->OpenKey(REG_KEY,true);
Reg->WriteString("User",sUser);
sRegCode=Reg->ReadString("RegCode");
Reg->CloseKey();
sCPUID=IntToStr(GetCPUID());
if(!sRegCode.IsEmpty() && sRegCode!=GetRegCode(sCPUID))
{
MessageDlg("Wrong Registration!\nPlease contact the author",
mtError,TMsgDlgButtons()<<mbOK,0);
delete Reg;
iCancel=0;
Close();
return;
}
else if(sRegCode.IsEmpty())
{
Reg->RootKey=HKEY_USERS;
Reg->OpenKey(RUNTIME_KEY,true);
iRunTimes=Reg->ReadInteger("RunTimes");
iRunTimes+=1;
if(iRunTimes>50)
{
MessageDlg("The system has been over the registration limitation",
mtError,TMsgDlgButtons()<<mbOK,0);
delete Reg;
iCancel=0;
Close();
return;
}
else
{
MessageDlg("The system can be run " + IntToStr(50-iRunTimes) + " Times!",
mtInformation,TMsgDlgButtons()<<mbOK,0);
Reg->WriteInteger("RunTimes",iRunTimes);
}
}
delete Reg;
iCancel=1;
Close();
}
stevenjscn
2006-05-02
打赏
举报
回复
LOGINFORM的头文件:
#ifndef LoginH
#define LoginH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Buttons.hpp>
#include <ExtCtrls.hpp>
#include <Graphics.hpp>
#include <Dialogs.hpp>
#include <ADODB.hpp>
#include <DB.hpp>
#include <ComCtrls.hpp>
//---------------------------------------------------------------------------
extern "C" __declspec(dllimport) long GetCPUID();
extern "C" __declspec(dllimport) AnsiString GetRegCode(AnsiString sCPUID);
class TLoginForm : public TForm
{
__published: // IDE-managed Components
TPanel *Panel1;
TImage *Image1;
TBitBtn *btnOK;
TBitBtn *btnCancel;
TEdit *edtUser;
TEdit *edtPswd;
TEdit *edtDBLocation;
TButton *btnBrowse;
TLabel *Label1;
TLabel *Label2;
TLabel *Label3;
TOpenDialog *odDialog;
TGroupBox *GroupBox1;
TLabel *Label4;
TDateTimePicker *dtDateFrom;
TLabel *Label5;
TDateTimePicker *dtDateTo;
TBitBtn *btnOptions;
void __fastcall FormActivate(TObject *Sender);
void __fastcall FormCreate(TObject *Sender);
void __fastcall edtUserKeyPress(TObject *Sender, char &Key);
void __fastcall edtPswdKeyPress(TObject *Sender, char &Key);
void __fastcall btnCancelClick(TObject *Sender);
void __fastcall btnOKClick(TObject *Sender);
void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
void __fastcall btnBrowseClick(TObject *Sender);
void __fastcall btnOptionsClick(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TLoginForm(TComponent* Owner);
int iCancel;
};
//---------------------------------------------------------------------------
extern PACKAGE TLoginForm *LoginForm;
//---------------------------------------------------------------------------
#endif
stevenjscn
2006-05-02
打赏
举报
回复
在工程文件的CPP中写入
#include <vcl.h>
#include "Login.h"
#pragma hdrstop
//---------------------------------------------------------------------------
USEFORM("Main.cpp", MainForm);
USEFORM("BIOCLOCKDM.cpp", dmBC); /* TDataModule: File Type */
USEFORM("Login.cpp", LoginForm);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
TLoginForm *frm=new TLoginForm(Application);
try
{
Application->Initialize();
Application->CreateForm(__classid(TdmBC), &dmBC);
frm->ShowModal();
if(frm->iCancel==0)
{
delete frm;
Application->Run();
return 0;
}
delete frm;
Application->CreateForm(__classid(TMainForm), &MainForm);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
return 0;
}
微信小
程序
授权
登录
如何实现(超级版本)
注意:首先微信小
程序
是不能一进入小
程序
就让用户授权
登录
的,一进入小
程序
就让用户授权
登录
,是审核不通过的; 要想弹出微信的微信授权提示
框
,必须用一个按钮来触发,可用授权
登录
这个按钮来让微信授权这个弹窗显示, 首先,我们先来看一张微信小
程序
的授权
登录
流程图 是不是一看这张逻辑图,一下子就觉得逻辑清晰了许多呢 如果还是不理解的话也没关系,下面我们通过代码来实现一下微信小
程序
的授权
登录
微信授权
登录
的具体实现步骤: 第一步,在用户进入小
程序
的时候,我们需要先判断一下用户是否授权过此小
程序
注:可以通过[wx.g
Windows应用
程序
安装向导
制作
Windows应用
程序
安装向导
制作
前言使用工具安装向导
制作
步骤 前言 昨天,突然意起想做个应用
程序
安装向导,因为之前我一直就弄个release发布版就完事了。于是
请教
了下同事,省得我自己琢磨了。在此mark~ 使用工具 想要
制作
安装向导,需要两个工具: 1、VNISEdit编译环境:根据自己的匹配生成 .nsi脚本文件; 2、Nullsoft Inst all System(NSIS):编译 .n...
请教
APP服务端
程序
开发
框
架或者技术方案
想要在云端自己搭建一个服务器,让自己的APP连接到这个服务器 请问服务器
程序
一般采用什么技术方案和
框
架, APP与服务器通信一般是采用什么方式 请各路大虾不吝赐教!
Java 基于微信小
程序
的校园
请教
小
程序
的研究与实现,附源码
Java 基于微信小
程序
的校园
请教
小
程序
的研究与实现,主要是对系统所要实现的功能进行详细考虑,确定所要实现的功能后进行界面的设计,在这中间还要考虑如何可以更好的将功能及页面进行很好的结合,方便用户可以很容易明了的找到自己所需要的信息,还有系统平台后期的可操作性,通过对信息内容的详细了解进行技术的开发。校园请假系统的设计与实现的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与校园请假系统的设计与实现管理的实际需求相结合,讨论了校园请假系统的设计与实现管理的使用。关键词:校园请假系统的设计与实现。
基于微信小
程序
的考研学习交流小
程序
设计与实现
今天带来的是基于微信小
程序
的考研学习交流小
程序
设计与实现,随着考研热度的不断攀升及移动互联网的普及,考研信息呈现出繁杂难辨的特点,考生迫切需要一个高效、便捷的平台来获取准确的考研资讯和备考资源。因此,设计一款集信息整合、资源共享与交流互动于一体的考研学习交流小
程序
显得尤为重要,旨在帮助考生节省查找时间,提升备考效率,促进考研文化的传播与知识交流。本系统采用了Spring Boot作为后端开发
框
架,结合Vue前端
框
架和微信小
程序
平台。
C++ Builder
13,873
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章