📄 pashostconfig.pas
字号:
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 + -