定制远程登陆窗口

王朝delphi·作者佚名  2006-01-08
宽屏版  字体: |||超大  

本文最初发于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;

--

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有