收藏登陆界面的写法。

copy_paste 2003-05-11 11:04:31
一般来说,很多程序是需要写登陆窗口的,光我接触的登陆窗口的写法,一个程序有一种,N个就有N个,所以想收集一下大家的,看看有什么不同,特点。

条件:
一个Project, 一个MainForm, 一个LoginForm;
LoginForm两个Button, 一个OK(mrOK), 一个Cancel(mrCancel)

大家任意发挥。

我的:
AppProject.Dpr

Application->Initialize;
Application->CreateForm(TMainForm, MainForm);
Application->Run;

MainUnit:
__fastcall TMainForm::TMainForm(TComponent* Owner)
: TForm(Owner)
{
if (!IsLogin(this)) then
{
Application->ShowMainForm = false;
Application->Terminate();
}
}

LoginUnit:

void IsLogin(TComponent *AOwner)
{
TLoginForm *Form = new TLoginForm(AOwner);
bool Result = (Form->ShowModal() == mrOK);
delete Form;
return Result;
}
...全文
104 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
chifengwatch 2003-05-12
  • 打赏
  • 举报
回复
收藏
srxumin 2003-05-12
  • 打赏
  • 举报
回复
各位大虾,你们的启动界面都没带LogoFrm的启动画面啊。能不能加个带启动界面的?就像Word启动时那样,第一步出现LogoFrm窗体,第二步出现MainFrm窗体,第三步LogoFrm窗体消失,第四步出现LoginFrm窗体;
好像将MainFrm窗体设为MDI父窗体时会出错
「已注销」 2003-05-12
  • 打赏
  • 举报
回复
收藏!
GaoLun 2003-05-11
  • 打赏
  • 举报
回复
收藏ing

我的办法比较笨,可是也能用
不过还是不要来献丑了 ^_^
gdyt007 2003-05-11
  • 打赏
  • 举报
回复
學習
jishiping 2003-05-11
  • 打赏
  • 举报
回复
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
TLoginForm *Form = new TLoginForm(0);
if (Form->ShowModal() != mrOK)
return 0;
Application->CreateForm(__classid(TForm1), &Form1);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
return 0;
}

这儿没有删除TLoginForm,我在TLoginForm的事件OnClose里写代码:
void __fastcall TLoginForm::FormClose(TObject *Sender, TCloseAction &Action)
{
Action = caFree;
}
meCAD 2003-05-11
  • 打赏
  • 举报
回复
up
imisu 2003-05-11
  • 打赏
  • 举报
回复
谢谢了
joymachines 2003-05-11
  • 打赏
  • 举报
回复
收藏ing
耙子 2003-05-11
  • 打赏
  • 举报
回复
嗬嗬,那个闪一下是因为窗体要Show一次,随即就关闭了。
我这人太懒,加在工程文件每次都要修改。
copy_paste 2003-05-11
  • 打赏
  • 举报
回复
(回头突然发现俺的代码,好像N多错误,哈,俺是从D译过来的,也不调试。)

2 netsys2(来电)
有什么登陆进度?一般对应DB Application来说project只会创建两个对象(Splash除外),DataModule & MainForm。基本上都没有登陆进度。

你说的登陆进度是不是DataModule的连接数据库的那一过程?那不在主题之内。而且我发现连接数据库的模块中,也是N多方法,也是像登陆一样,N人会写出N种方法来。

2 pazee
你说会闪一下,估计你的程序运行了Create MainForm,所以闪了一下。其实俺的发贴的其中一个意思就是看看按取消时,会不会闪一下的问题。JSP没有这个问题,应该是其中你的代码有些问题吧。呵呵,大头。


如果是VC写登陆窗体,好像应该是按JSP的思路写的:
Init:

CLogin dlg;
if (dgl.DoShowModal() == IDOK)
{
MainForm ...
}
else
return 0;

所以看,我看很多程序,基本上是取消后马上退出,基本不会闪的情况。
以前我写登陆时,反正这搞搞那搞搞,好像总是会有些BUG。。。:(
Friecin 2003-05-11
  • 打赏
  • 举报
回复
哇!我发现我发错了!与主体不对!

不要意思~
netsys2 2003-05-11
  • 打赏
  • 举报
回复
都差不多。估计就这两种。

1)写在PROJECT中:
好处,可以显示登陆进度
坏处:修改工程文件会被破坏

2)写在主FORM中
好处,修改工程文件不会被破坏
坏处:不能显示登陆进度
langhaixin 2003-05-11
  • 打赏
  • 举报
回复
我也是同楼上的pazee兄一样的做 不过主窗体闪的问题好像没发现过!
Friecin 2003-05-11
  • 打赏
  • 举报
回复
USEFORM("FormPicEdit.cpp", frmPicEdit);
USEFORM("FormSysSet.cpp", frmSysSet);
USEFORM("FormSpl.cpp", frmSpl);
USEFORM("FormColor.cpp", frmColor);
USEFORM("FormVColorEdit.cpp", frmVColorEdit);
//---------------------------------------------------------------------------
AnsiString (__stdcall *ReadDiskID)();

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{


//=========================================


TfrmSpl *frmSpl=new TfrmSpl(Application); ///这里,通过读取系统秒数
long nowtime=GetTickCount();
while(long(GetTickCount())-nowtime<1500)
{
frmSpl->Show();
frmSpl->Update();
}

Application->Initialize();

Application->Title = "大器医疗系统";
Application->CreateForm(__classid(TfrmMain), &frmMain);

delete frmSpl;
Application->Run();
耙子 2003-05-11
  • 打赏
  • 举报
回复
原来我写的也是放在工程文件里面,类似jsp,
但是发现bcb每次在我添加了新的窗口后他都要修改这个工程文件,面目全非,这点他不如delphi,
所以bcb里面我都写在主窗口的OnCreate里面,唯一的问题就是放弃登录的时候这个主窗体会闪一下。
spaceman 2003-05-11
  • 打赏
  • 举报
回复
学习
myy 2003-05-11
  • 打赏
  • 举报
回复
一般程序允许“重新登陆”,我觉得只要把登陆模块独立开就行了,放在哪里都行。
kata520 2003-05-11
  • 打赏
  • 举报
回复
我觉得JSP的好一些。
Behard 2003-05-11
  • 打赏
  • 举报
回复
不过如果使用登陆数据库的话
我觉得最好使用 Copy_paste 的方法比较方便
加载更多回复(1)
PHPMyWind CMS官方版 v4.6.5 Beta,是目前该系统网站的最新版本,PHPMyWind是一个品牌,一款基于PHP+MySQL开发符合W3C标准的建站引擎。它将带给人们一系列高效的,成熟的企业网站建设解决方案,让您的信息以更健康的形式高速传递给需要的它的人们,同时让您感受通过PHPMyWind带给您畅快体验。 设计理念 我们追求速度与舒适度。PHPMyWind要做的,只是贴近再贴近中国建站行业人员的使用习惯。在我们的眼中,PHPMyWind不止是一款CMS。它是一套底层代码,是工具箱,是万花筒。我们工作中的任何项目都可以通过改动它来完成。前提是我们都具备PHP的开发基础。我们会尽一切努力把代码与结构制作的简单易懂。你需要什么,尽管来拿! 开发语录 PHPMyWind 前台与后台完全采用PHP代码开发完成,测试过使用框架或模板引擎,虽然MVC很理想,可是却增加了二次开发的难度,特别影响速度。PHPMyWind 主要面向的开发者就是企业建站行业的童鞋们。我们需要的是简单的,快速的,稳定的,拆分性较强的CMS。可能每个站只有几个栏目,亦或网站功能较为特殊需要定制。所以,对模块化要求极强。因此,我们总结上述几点是企业建站开发者们最需要的几点需求,以此为突破口,开发过程中时刻遵循于此。我们希望,开发者在开发的过程中感觉快速、舒适,这是我们的追求。 PHPMyWind 从2010年开发至今已有2年时间,其间已经过4次重写。结构,代码写法逐步成熟。系统内置多个类以及函数,大幅提升开发速度。如目前对系统类使用不惯得同学们,也可以采用PHP内置原生函数开发。每个前台页面保证在头部调用 /include/config.inc.php 即可初始化系统代码,进行开发工作。前台只作为示例展示,与后台关联程度不高,但也可直接使用。目前您可视PHPMyWind为一款CMS核心,在它之上制作丰富的网站。 PHPMyWind v4.6.5 Beta 更新时间:2013-08-28 更新说明: 【更新】 1.新增管理组与权限管理 2.全新设计后台登陆界面 3.更新后台界面样式 【优化】 1.优化对创建超级管理员的权限判断 2.优化类别折叠效果 【修复】 1.修复部分环境下多站切换无效问题 2.修复快捷导航浏览器兼容性的问题 3.修复导航缩略图片只显示路径问题 4.修复关闭文章评论后收藏失效问题 5.修复自定义菜单项添加报错问题 6.修复新增变量为空时不报错问题 7.修复分页页码为负数报错问题 8.修复编辑器过滤HTML标记问题 9.修复管理员问题回答错误问题 10.修复快捷导航链接错误问题 11.修复编辑器v4.1.7多图路径问题

13,870

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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