⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pashostconfig.pas

📁 一个电力企业的后台管理程序
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit pashostconfig;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, ComCtrls, filectrl, ExtCtrls, Db, DBTables, ImgList,
  ActnList, Menus, TB97Tlbr, TB97Ctls, TB97;

type
  TFrm_hostconfig = class(TForm)
    tvstructure: TTreeView;
    Panel1: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    ed_hostname: TEdit;
    ed_item: TEdit;
    ed_text: TEdit;
    mem_note: TMemo;
    Actionmenu: TActionList;
    ImageList1: TImageList;
    sbfind: TSpeedButton;
    Actionappend: TAction;
    Actiondelete: TAction;
    Actionamend: TAction;
    Actionsave: TAction;
    Actionexit: TAction;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    Dock971: TDock97;
    tbar97_HostConfig: TToolbar97;
    ToolbarButton971: TToolbarButton97;
    ToolbarButton972: TToolbarButton97;
    ToolbarSep971: TToolbarSep97;
    ToolbarSep972: TToolbarSep97;
    ToolbarButton973: TToolbarButton97;
    ToolbarButton974: TToolbarButton97;
    ToolbarButton975: TToolbarButton97;
    ToolbarSep973: TToolbarSep97;
    ToolbarSep974: TToolbarSep97;
    ToolbarSep975: TToolbarSep97;
    StatusBar: TStatusBar;
    ImageList2: TImageList;
    ToolbarButton976: TToolbarButton97;
    ToolbarSep976: TToolbarSep97;
    ActionCancel: TAction;
    N8: TMenuItem;
    Splitter1: TSplitter;
    procedure FormCreate(Sender: TObject);
    procedure sbfindClick(Sender: TObject);
    procedure tvstructureChange(Sender: TObject; Node: TTreeNode);
    procedure ActionappendExecute(Sender: TObject);
    procedure ActiondeleteExecute(Sender: TObject);
    procedure ActionamendExecute(Sender: TObject);
    procedure ActionsaveExecute(Sender: TObject);
    procedure ActionexitExecute(Sender: TObject);
    procedure ed_hostnameKeyPress(Sender: TObject; var Key: Char);
    procedure ed_itemKeyPress(Sender: TObject; var Key: Char);
    procedure ed_textKeyPress(Sender: TObject; var Key: Char);
    procedure ActionCancelExecute(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Frm_hostconfig: TFrm_hostconfig;

implementation

uses
  pashostconfigdm,EcscMain,SystemPH;
var
  streenode:ttreenode;
  vselect:integer=10;
  svarity:string;

{$R *.DFM}

procedure TFrm_hostconfig.FormCreate(Sender: TObject);
var
 selnode:Ttreenode;
begin
  {tbar97_HostConfig.AddDockForm(Application.MainForm);
  tbar97_HostConfig.DockedTo:=Tfrm_Main(Application.MainForm).dk97_Home;}


  Actionsave.enabled:=false;
  ActionCancel.enabled:=false;
  statusbar.panels[0].text:='';
  ed_hostname.readonly:=true;
  ed_item.readonly:=true;
  ed_text.readonly:=true;
  mem_note.readonly:=true;
  selnode:=tvstructure.items.add(nil,'系统主机');
  with DM_hostconfig.qryhostconfig do
    begin
       try
        Close;
        sql.clear;
        sql.text:='select distinct hostname from hostconfig';
        open;
       except
         application.MessageBox('系统初始化有误,请重新起动','消息框',MB_ICONASTERISK+MB_OK);
         close;
       end;
       while not eof do
        begin
          selnode:=tvstructure.items.Addchild(selnode,FieldbyName('hostname').asstring);
          with DM_hostconfig.query do
           begin
             try
               close;
               sql.Clear;
               sql.add('select item from hostconfig where hostname='''+
                     DM_hostconfig.qryhostconfig.FieldbyName('hostname').asstring+'''');
               open;
             except
                application.MessageBox('系统初始化有误,请重新起动','消息框',MB_ICONASTERISK+MB_OK);
                close;
             end;
             while not eof do
               begin
                  tvstructure.items.Addchild(selnode,DM_hostconfig.query.FieldbyName('item').value);
                  next;
               end;
           end;
          selnode:=selnode.parent;
          DM_hostconfig.qryhostconfig.next;
        end;
    end;
end;

procedure TFrm_hostconfig.sbfindClick(Sender: TObject);
var
   s,str:string;
   len,lenint:integer;
begin
    if selectdirectory('查询虚拟主机的路径','1111',s) then
    begin
      if copy(s,1,2)='\\' then
        begin
          len:=length(s);
          str:=copy(s,3,len);
          lenint:=pos('\',str);
          ed_hostname.Text:=copy(str,1,lenint-1);
          ed_text.text:=copy(str,lenint+1,1)+':'+copy(str,lenint+2,len);
        end
      else ed_text.text:=s;
    end;
end;

procedure TFrm_hostconfig.tvstructureChange(Sender: TObject; Node: TTreeNode);
var
  selnode:ttreenode;
  shostname,sitem,strsql:string;
begin

  if assigned(tvstructure.selected) then
    begin
      selnode:=tvstructure.Selected;
      case selnode.Level of
        0: begin
             ed_hostname.text:='';
             ed_item.text:='';
             ed_text.text:='';
             mem_note.text:='';
           end;
        1: begin
             ed_hostname.text:='';
             ed_item.text:='';
             ed_text.text:='';
             mem_note.text:='';
           end;
        2: begin
             shostname:=selnode.parent.text;
             sitem:=selnode.text;
             strsql:='select * from hostconfig where hostname=';
             strsql:=strsql+#39+shostname+#39;
             strsql:=strsql+'and item=';
             strsql:=strsql+#39+sitem+#39;
             with DM_hostconfig.qryhostconfig do
               begin
                 try
                   close;
                   sql.Clear;
                   sql.add(strsql);
                   open;
                 except
                    application.MessageBox('系统查询有误,请重试','消息框',MB_ICONASTERISK+MB_OK);
                    exit;
                 end;
                 ed_hostname.text:=fieldbyname('hostname').asstring;
                 ed_item.text:=fieldbyname('item').asstring;
                 ed_text.text:=fieldbyname('text').asstring;
                 mem_note.text:=fieldbyname('note').asstring;
              end;   
           end;
      end;
      end;
end;

procedure TFrm_hostconfig.ActionappendExecute(Sender: TObject);
var
  selnode:ttreenode;
begin
  statusbar.panels[0].text:='增加主机或者节点';
  Actionsave.enabled:=true;
  Actioncancel.Enabled:=true;
  Actiondelete.enabled:=false;
  Actionamend.enabled:=false;
  ed_hostname.readonly:=false;
  ed_item.readonly:=false;
  ed_text.readonly:=false;
  mem_note.readonly:=false;
  if assigned(tvstructure.selected) then
    begin
     ed_item.text:='';
     ed_text.text:='';
     mem_note.text:='';
     selnode:=tvstructure.Selected;
     case selnode.level of
       0: begin
            ed_hostname.text:='';
            ed_hostname.setfocus;
          end;
       1: begin
            ed_hostname.text:=selnode.text;
            ed_hostname.readonly:=true;
            ed_item.setfocus;
          end;
     end;
    end
  else application.MessageBox('请选着您要增加的主机名或虚拟设备名称','消息框',
                               MB_ICONASTERISK+MB_OK);
end;

procedure TFrm_hostconfig.ActiondeleteExecute(Sender: TObject);
var
  selnode:ttreenode;
  str1,strsql:string;
begin
  statusbar.panels[0].text:='删除主机或者节点';
  If Assigned(tvstructure.Selected) then
    Begin
      SelNode:=tvstructure.Selected;
      str1:=selnode.text;
      case selnode.Level of
        0: application.MessageBox('此操作违法','消息框',MB_ICONASTERISK+MB_OK);
        1: if application.MessageBox('是否确认要删除该主机','消息框',
                                      MB_ICONQUESTION+MB_OKCANCEL)=1 then
              with DM_hostconfig.qryhostconfig do
                begin
                   strsql:='delete hostconfig where hostname=';
                   strsql:=strsql+#39+str1+#39;
                   try
                     close;
                     sql.Clear;
                     sql.add(strsql);
                     execsql;
                   except
                     application.MessageBox('系统删除有误,请重试','消息框',MB_ICONASTERISK+MB_OK);
                     exit;
                   end;
                   tvstructure.items.Delete(selnode);
                end
            else exit;
        2: if application.MessageBox('是否确认要删除该节点','消息框',
                                      MB_ICONQUESTION+MB_OKCANCEL)=1 then
             with DM_hostconfig.qryhostconfig do
                begin
                   strsql:='delete hostconfig where item=';
                   strsql:=strsql+#39+str1+#39;
                   try
                     close;
                     sql.Clear;
                     sql.add(strsql);
                     execsql;
                   except
                      application.MessageBox('系统删除有误,请重试','消息框',MB_ICONASTERISK+MB_OK);
                      exit;
                   end;
                   tvstructure.items.Delete(selnode);
                end
            else exit;
      end;
    end;
end;

procedure TFrm_hostconfig.ActionamendExecute(Sender: TObject);
var
  selnode:ttreenode;
  str1,strsql:string;
begin
  Actionsave.enabled:=true;
  Actioncancel.enabled:=true;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -