如何做一个登录界面?(具体问题见内容)

kk706 2005-06-02 04:39:03
我已经做了一个数据库管理系统,想让它在使用前需要“用户名+密码”登录后,才能使用这个系统,问如何做?
...全文
689 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
weill 2005-06-06
  • 打赏
  • 举报
回复
唉,不是寒酸你。
这个问题不是技术问题,而是你的脑子有问题。
zjt621 2005-06-06
  • 打赏
  • 举报
回复
void __fastcall TPasswordDlg::OKBtnClick(TObject *Sender)
{
int flag; //验证成功标志
//查库,验证密码与用户名
//同过则flag = true; 否则flag = false;
if(flag)
{
PasswordDlg->Hide();
PasswordDlg->Free();
ShowWindow(Application->Handle,SW_SHOW);
Application->MainForm->Visible = true;

}
else
{
ShowMessage("登陆密码错误,请重新输入");
Password->Text = "";
Password->SetFocus();
}
}

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
Application->Title = "untitle";
Application->CreateForm(__classid(TForm1), &Form1);
Application->ShowMainForm = false;
ShowWindow(Application->Handle,SW_HIDE);
Application->CreateForm(__classid(TPasswordDlg), &PasswordDlg);

Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
return 0;
}
iyln 2005-06-06
  • 打赏
  • 举报
回复
我一般把密码经过MD5转换后和用户名一起存到数据库中的一个特定的表中,登录时对用户输入的密码计算MD5校验和,再和数据库中的密码进行比较。
wulikangju 2005-06-05
  • 打赏
  • 举报
回复
各位大虾!我是个菜鸟!请教一下!
我做的登陆窗口,只有两种用户(ComboBox),一个是系统管理员,可以对系统新增,修改,删除,这些操作
而另一个用户是一般用户,只可以查开你们的资料,可以打印!
怎么编辑代码,做毕业设计,急需!
先叩谢各位大虾了
rcrain 2005-06-05
  • 打赏
  • 举报
回复
做一个登陆form名为LoginForm。主窗口为MainForm。
void __fastcall TMainForm::FormCreate(TObject *Sender)
{
LoginForm->ShowModal();
}
这样在运行时,先出现登陆窗口。
然后对登陆窗口进行写代码。如果点“登录”,在其Click事件中写
{ if(用户名和密码正确)
{ LoginForm->close();
MainForm->ShowModal();
}
else {要求重新输入之类的操作}
}
「已注销」 2005-06-04
  • 打赏
  • 举报
回复
//---------------------------------------------------------------------------

#ifndef LoginUnitH
#define LoginUnitH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Buttons.hpp>
#include <ExtCtrls.hpp>
//---------------------------------------------------------------------------
class TLoginForm : public TForm
{
__published: // IDE-managed Components
TLabel *PwLabel;
TEdit *PwEdit;
TSpeedButton *OKBtn;
TSpeedButton *CancelBtn;
void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
void __fastcall OKBtnClick(TObject *Sender);
void __fastcall CancelBtnClick(TObject *Sender);

private: // User declarations
int nInputCount; // 输入密码次数
AnsiString strPw;
public: // User declarations
__fastcall TLoginForm(TComponent* Owner, AnsiString strpw);
};
//---------------------------------------------------------------------------
extern PACKAGE TLoginForm *LoginForm;
//---------------------------------------------------------------------------
#endif

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "LoginUnit.h"

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TLoginForm *LoginForm;
//---------------------------------------------------------------------------
__fastcall TLoginForm::TLoginForm(TComponent* Owner, AnsiString strpw)
: TForm(Owner)
{
nInputCount = 0;
strPw = strpw;
}
//---------------------------------------------------------------------------

void __fastcall TLoginForm::FormClose(TObject *Sender,
TCloseAction &Action)
{
Action = caFree;
}
//---------------------------------------------------------------------------

void __fastcall TLoginForm::OKBtnClick(TObject *Sender)
{
bool bEntry = false;
if( PwEdit->Text.UpperCase() == strPw )
{
bEntry = true;
}
if ( bEntry )
{
ModalResult = mrOk;
}
else
{
nInputCount++;
PwEdit->Text = "";
AnsiString strcap = "你还有"+IntToStr(3-nInputCount)+"次机会!";
if ( nInputCount <= 3 &&
Application->MessageBox("密码输入不正确,需要重新输入吗?",
strcap.c_str(),
MB_YESNO | MB_ICONINFORMATION) == IDYES )
{
PwEdit->Focused();
}
else ModalResult = mrCancel;
}
}
//---------------------------------------------------------------------------

void __fastcall TLoginForm::CancelBtnClick(TObject *Sender)
{
ModalResult = mrCancel;
}
//---------------------------------------------------------------------------

#include <vcl.h>
#include "LoginUnit.h"
#pragma hdrstop
//---------------------------------------------------------------------------
USEFORM("Unit1.cpp", Form1);
USEFORM("LoginUnit.cpp", LoginForm);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
LoginForm = new TLoginForm(Application,"你的密码");
LoginForm->Caption = "登录系统";
LoginForm->PwLabel->Caption = "输入登录密码:";
if( LoginForm->ShowModal() != mrOk ) return 0;
Application->CreateForm(__classid(TForm1), &Form1);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
return 0;
}
//---------------------------------------------------------------------------

hsanyu 2005-06-02
  • 打赏
  • 举报
回复
在主窗体.cpp中

void __fastcall TsMainForm::FormCreate(TObject *Sender)
{

if(login) {
String s1="登录";
login=false;
TLoginForm *LoginForm=new TLoginForm(&s1);
LoginForm->ShowModal();
char *s11=s1.c_str();
delete LoginForm;
}

//加入要处理的代码
}

在登录窗体.cpp中加入密码验证代码即可
gxd305 2005-06-02
  • 打赏
  • 举报
回复
BCB里面好像有一个
这样的现成的Form

new
窗口的form 页上看一看
dddbryant 2005-06-02
  • 打赏
  • 举报
回复
程序启动就到数据库中查找用户名

如果用户名存在,就看密码正不正确,

两个Edit就可以解决了:)
kk706 2005-06-02
  • 打赏
  • 举报
回复
谢谢咕嘟,能再具体一些吗?非常感谢!!!
铖邑 2005-06-02
  • 打赏
  • 举报
回复
可以将用户名、口令存放在数据库中,然后做个界面,程序一启动就打开这个界面,输入用户、口令正确后才能进入系统。

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧