uServerBrowser.pas
上传用户:fuyouda
上传日期:2015-08-19
资源大小:6876k
文件大小:2k
源码类别:

家庭/个人应用

开发平台:

Visual C++

  1. unit uServerBrowser;
  2. interface
  3. uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
  4.   Buttons, ExtCtrls;
  5. type
  6.   TServerInfo=class
  7.     Node: string;
  8.     ProgID, ClassID: string;
  9.     Version: DWORD;
  10.   end;
  11.   TServerBrowser = class(TForm)
  12.     OKBtn: TButton;
  13.     CancelBtn: TButton;
  14.     RefreshBtn: TButton;
  15.     Servers: TListBox;
  16.     rbV1: TRadioButton;
  17.     rbV2: TRadioButton;
  18.     ServerName: TEdit;
  19.     Label2: TLabel;
  20.     Label1: TLabel;
  21.     ServerNode: TEdit;
  22.     procedure RefreshBtnClick(Sender: TObject);
  23.     procedure ServersClick(Sender: TObject);
  24.     procedure FormCreate(Sender: TObject);
  25.     procedure FormDestroy(Sender: TObject);
  26.     procedure ServersDblClick(Sender: TObject);
  27.   private
  28.     { Private declarations }
  29.   public
  30.     Selected: TServerInfo;
  31.   end;
  32. var
  33.   ServerBrowser: TServerBrowser;
  34. implementation
  35. uses DACLTSDK;
  36. {$R *.dfm}
  37. procedure TServerBrowser.RefreshBtnClick(Sender: TObject);
  38. var
  39.   I, Count: Integer;
  40.   Version: DWORD;
  41.   ServerNames, ServerClassIDs: Variant;
  42.   info: TServerInfo;
  43. begin
  44.   Servers.Clear;
  45.   Selected:= nil;
  46.   if rbV2.Checked then Version:= 2 else Version:= 1;
  47.   Count:=ASDAC_GetServers(PChar(ServerNode.Text), Version, @ServerNames, @ServerClassIDs);
  48.   for I:=0 to Count-1 do
  49.   begin
  50.     Info:= TServerInfo.Create;
  51.     Info.Node:=    ServerNode.Text;
  52.     Info.ProgID:=  ServerNames[I];
  53.     Info.ClassID:= ServerClassIDs[I];
  54.     Info.Version:= Version;
  55.     Servers.Items.AddObject(ServerNames[I], Info);
  56.   end;
  57. end;
  58. procedure TServerBrowser.ServersClick(Sender: TObject);
  59. begin
  60.   if Servers.ItemIndex>-1 then
  61.   begin
  62.     Selected:=TServerInfo(Servers.Items.Objects[Servers.ItemIndex]);
  63.     ServerName.Text:= Selected.ProgID;
  64.   end;
  65. end;
  66. procedure TServerBrowser.FormCreate(Sender: TObject);
  67. begin
  68.   ServerName.Text:= '';
  69.   ServerNode.TExt:= '';
  70.   RefreshBtn.Click;
  71. end;
  72. procedure TServerBrowser.FormDestroy(Sender: TObject);
  73. var
  74.   I: Integer;
  75. begin
  76.   for I := 0 to Servers.Count-1 do
  77.     Servers.Items.Objects[I].Free;
  78. end;
  79. procedure TServerBrowser.ServersDblClick(Sender: TObject);
  80. begin
  81.   if Servers.ItemIndex>-1 then
  82.   begin
  83.     Selected:=TServerInfo(Servers.Items.Objects[Servers.ItemIndex]);
  84.     ModalResult:= mrOK;
  85.   end;
  86. end;
  87. end.