如何做一个登录界面?(具体问题见内容)
我已经做了一个数据库管理系统,想让它在使用前需要“用户名+密码”登录后,才能使用这个系统,问如何做? 问题点数:0、回复次数:11Top
1 楼xpdavis(咕嘟-不想孤独)回复于 2005-06-02 16:52:05 得分 0
可以将用户名、口令存放在数据库中,然后做个界面,程序一启动就打开这个界面,输入用户、口令正确后才能进入系统。Top
2 楼kk706(xh)回复于 2005-06-02 17:02:52 得分 0
谢谢咕嘟,能再具体一些吗?非常感谢!!!Top
3 楼dddbryant(每天都加班)回复于 2005-06-02 17:06:09 得分 0
程序启动就到数据库中查找用户名
如果用户名存在,就看密码正不正确,
两个Edit就可以解决了:)
Top
4 楼gxd305()回复于 2005-06-02 17:18:10 得分 0
BCB里面好像有一个
这样的现成的Form
在
new
窗口的form 页上看一看Top
5 楼hsanyu(黄老邪)回复于 2005-06-02 21:49:11 得分 0
在主窗体.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中加入密码验证代码即可
Top
6 楼Yans(跟贴是一种友谊)回复于 2005-06-04 22:39:55 得分 0
//---------------------------------------------------------------------------
#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;
}
//---------------------------------------------------------------------------
Top
7 楼rcrain(东方细雨)回复于 2005-06-05 16:40:50 得分 0
做一个登陆form名为LoginForm。主窗口为MainForm。
void __fastcall TMainForm::FormCreate(TObject *Sender)
{
LoginForm->ShowModal();
}
这样在运行时,先出现登陆窗口。
然后对登陆窗口进行写代码。如果点“登录”,在其Click事件中写
{ if(用户名和密码正确)
{ LoginForm->close();
MainForm->ShowModal();
}
else {要求重新输入之类的操作}
}
Top
8 楼wulikangju(无力抗拒)回复于 2005-06-05 23:05:51 得分 0
各位大虾!我是个菜鸟!请教一下!
我做的登陆窗口,只有两种用户(ComboBox),一个是系统管理员,可以对系统新增,修改,删除,这些操作
而另一个用户是一般用户,只可以查开你们的资料,可以打印!
怎么编辑代码,做毕业设计,急需!
先叩谢各位大虾了Top
9 楼iyln(流浪猫)回复于 2005-06-06 02:13:20 得分 0
我一般把密码经过MD5转换后和用户名一起存到数据库中的一个特定的表中,登录时对用户输入的密码计算MD5校验和,再和数据库中的密码进行比较。Top
10 楼zjt621(Compower)回复于 2005-06-06 20:00:51 得分 0
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;
}Top
11 楼weill(每天提一问,一天学一点)回复于 2005-06-06 20:05:41 得分 0
唉,不是寒酸你。
这个问题不是技术问题,而是你的脑子有问题。
Top




