本文最初发于uestc一网深情bbs delphi版
weck
2002-5-29
midas的远程登陆窗口太简单了,不能让用户选择要连接的服务器的地址
不过好在 通过以下的方法你可以修改这个登陆窗口为你自己非常喜欢
的风格,当然也因此可以记录下别人的登陆密码哦
unit utlogin;
interface
uses
windows, messages, sysutils, variants, classes, graphics, controls, forms,
dialogs, extctrls, stdctrls, dxcntner, dxeditor, dxexedtr, dxedlib,registr
y,sconnect,db;
const
software='\software\pivot\wages\1.0';
type
tremotelogin = class(tform)
panel1: tpanel;
label1: tlabel;
label2: tlabel;
label3: tlabel;
panel2: tpanel;
bevel2: tbevel;
bevel1: tbevel;
edtusername: tdxedit;
edtpassword: tdxedit;
btnok: tbutton;
btncancel: tbutton;
cbxserverip: tdxpickedit;
private
{ private declarations }
protected
fconnection:tsocketconnection;
procedure saveoptions;
procedure loadoptions;
public
{ public declarations }
end;
var
remotelogin: tremotelogin;
function gxremotelogindialog(var ausername, apassword: string): boolean;
implementation
uses utmain;
{$r *.dfm}
procedure tremotelogin.loadoptions;
var
reg:tregistry;
begin
//load the options
reg:=tregistry.create;
try
reg.rootkey := hkey_local_machine;
if reg.openkey(software, true) then
begin
cbxserverip.items.commatext:=reg.readstring('server');
reg.closekey;
end;
finally
reg.free;
inherited;
end;
end;
procedure tremotelogin.saveoptions;
var
reg:tregistry;
begin
//load the saved options
if (cbxserverip.items.indexof(cbxserverip.text)=-1) then
cbxserverip.items.insert(0,cbxserverip.text);
reg:=tregistry.create;
try
reg.rootkey := hkey_local_machine;
if reg.openkey(software, true) then
begin
reg.writestring('server',cbxserverip.items.commatext);
reg.closekey;
end;
finally
reg.free;
inherited;
end;
end;
function gxremotelogindialog(var ausername, apassword: string): boolean;
begin
with tremotelogin.create(application) do
try
caption := '远程登录';
loadoptions;
edtusername.text := ausername;
result := false;
if ausername = '' then activecontrol := edtusername;
if ( cbxserverip.items.count=0) then
cbxserverip.itemindex:=-1
else
cbxserverip.itemindex:=0;
if showmodal = mrok then
begin
ausername := edtusername.text;
apassword := edtpassword.text;
frmmain.connection.host:=cbxserverip.text;
result := true;
saveoptions;
end;
finally
free;
end;
end;
end.
最关键的一句是:
initialization
remotelogindialogproc := gxremotelogindialog;
--