定制远程登陆窗口

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 weck 的 blog

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

本文关键:Midas 登录 定制
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top