注册 登录
编程论坛 Delphi论坛

[求助]登录密码的问题!

ty2 发布于 2006-11-04 15:19, 2894 次点击

刚学delphi不久,在做登录系统时,如何用程序将输入的密码以“*”号的方式输出?

急切盼望回帖,谢谢!
16 回复
#2
xu20002006-11-04 22:41
将passwordchar改成*就可以了。
#3
ty22006-11-06 08:41

先谢谢了

我来试试!

#4
ty22006-11-06 09:33

上面的问题解决了!

再请教一下:如何写程序来防止重复登录啊?

#5
zhangwei09172006-11-06 19:47
回复!

你的意思是不是在用户登录是输入ID或者Password错误时,对用户的邓录次数进行限制?通常是3次.就如同我们在ATM机上取款一样.

#6
xu20002006-11-06 22:37

楼主需要把问题说的更详细一点。

#7
ty22006-11-07 08:55

不好意思,我没考虑到这么细!

就当作两种情况吧!一种是如果输入密码错误时,进行登录次数的限制,比如3次;还有一种情况是当一个用户已经登录了,那再用这个用户名和密码会不会又登录进去呢?

#8
形影随从2006-11-07 10:01
樓主的意思應該是防止同一程式在同一機子上不能重複開吧!也就是說同一機子一程式只能一個界面!
#9
ty22006-11-07 10:12

开始的时候我确实是只想到这方面的问题,请问楼上的这个问题怎么解决?

它与“当密码输入错误时,进行登录次数的限制”是不同的吧?那又如何解决“当密码输入错误时,进行登录次数的限制“呢?

#10
形影随从2006-11-07 10:36
防止程式重複執行會比較複雜,因為關系挺多系統函數的,還沒深入研究過.
關於密碼問題,你把輸入密碼錯誤的次數記錄到一個INI檔中,下次登陸程式時先去檢查這INI檔記錄的次數再做相關處理了.
#11
ty22006-11-07 11:21
谢谢了!
我还用过ini呢,这就去查查怎么用吧!
#12
xu20002006-11-07 18:52
如果要防止程序在本机运行第二次的话可以用下面的代码
var
handle:Thandle;
begin
handle:=findwindow('tform1','form1');
if handle=0 then
begin
application.initialize;
application.createform(tform1,form1);
application.run;
end
else
messagedlg('重复运行',mtinformation,[mbok],0);
setforegroundwindow(handle);
end;
如果防止用重新登录的话可以考虑用ini或在数据库中做一个新表。
#13
ty22006-11-10 16:24

谢谢了!

不过有些句子的用法我还是不懂!

我再去看看这些基础的来!

#14
volte2006-11-10 17:31

我认为12楼的程序不可行,

首先登录界面一般是登录过后就退出的界面

窗体已经释放,你在去查找是否有该窗体在运行,

这不是很明显的错误吗?(有一窗体始终是运行!)

我认为可以通过进程来判断!

#15
xu20002006-11-10 22:39
以下是引用volte在2006-11-10 17:31:28的发言:

我认为12楼的程序不可行,

首先登录界面一般是登录过后就退出的界面

窗体已经释放,你在去查找是否有该窗体在运行,

这不是很明显的错误吗?(有一窗体始终是运行!)

我认为可以通过进程来判断!

我确实没有你想的周到,我做程序的时候往往把登录窗体作主。
谢谢你的提醒,以后还有很多问题要向你请教。

#16
散人2006-11-12 21:30

program Project1;

uses
Forms,
Unit1 in 'Unit1.pas' {Form1};
var
Mutex: THandle;
{$R *.res}
begin
Mutex := CreateMutex(nil,True,'OneInstance');
if GetLastError<>ERROR_ALREADY_EXISTS then
begin
Application.Initialize;
Application.CreateForm(TfrmLogin, frmLogin);
Application.CreateForm(TfrmMain, frmMain);
Application.Run;
end else
begin
ShowMessage('程序已经运行!');
ReleaseMutex(Mutex);
end;
end.

#17
ty22006-11-13 11:59

谢谢楼上的了!

无奈,我还是看不懂呀!能不能再解释一哈!

program Project1;

uses
Forms,
Unit1 in 'Unit1.pas' {Form1}; file://这个语句什么意思呀?
var
Mutex: THandle;
{$R *.res}
begin
Mutex := CreateMutex(nil,True,'OneInstance');
if GetLastError<>ERROR_ALREADY_EXISTS then file://红色字迹部分是变量还是系统自 带的函数?
begin
Application.Initialize; file://application是对象吧?什么作用?
Application.CreateForm(TfrmLogin, frmLogin);//frmlogin、frmmain是需要提前
Application.CreateForm(TfrmMain, frmMain); // 创建的窗体吗?
Application.Run;
end else
begin
ShowMessage('程序已经运行!');
ReleaseMutex(Mutex);

虽然问题多了点,不过还是希望看得懂的网友别嫌麻烦,回复一下吧!

谢谢了!

1