📄 frmpjgdsbm.pas
字号:
unit frmPJgDsbm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, ImgList, ToolWin, Spin, uNodeLabel,
ExtDlgs, Menus, JPEG;
type
TJgDsbm = class(TForm)
CoolBar1: TCoolBar;
ToolBar1: TToolBar;
ImageList1: TImageList;
ImageList2: TImageList;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Label1: TLabel;
edtMc: TEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
posX: TSpinEdit;
Label5: TLabel;
posY: TSpinEdit;
Panel4: TPanel;
imgMap: TImage;
ImageList3: TImageList;
chkXs: TCheckBox;
btnMap: TButton;
Label6: TLabel;
edtBh: TEdit;
dlgMap: TOpenPictureDialog;
pmNode: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
Edit1: TEdit;
CheckBox1: TCheckBox;
SpinEdit1: TSpinEdit;
Label7: TLabel;
Edit2: TEdit;
CheckBox2: TCheckBox;
SpinEdit2: TSpinEdit;
CheckBox3: TCheckBox;
btnSet: TButton;
tvInfo: TTreeView;
CheckBox4: TCheckBox;
Edit3: TEdit;
Label8: TLabel;
procedure ToolButton5Click(Sender: TObject);
procedure chkXsClick(Sender: TObject);
procedure imgMapMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure imgMapClick(Sender: TObject);
procedure btnMapClick(Sender: TObject);
procedure ToolButton8Click(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton6Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure tvInfoChange(Sender: TObject; Node: TTreeNode);
procedure CheckBox3Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure CheckBox4Click(Sender: TObject);
private
{ Private declarations }
iX: Integer;
iY: Integer;
sPicFile: String;
isAdd: Boolean;
ParentNode: String;
iNode: Integer;
iDsJb: smallint;
procedure LoadDsInfo;
procedure RefreshItem(const Value:Boolean);
procedure LabelClick(Sender: TObject);
procedure LabelMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
function AddSave: smallint;
function EditSave: Smallint;
procedure LoadNodeList;
procedure RefreshNode;
procedure InitInfo;
public
{ Public declarations }
end;
var
JgDsbm: TJgDsbm;
aNode: ANodeLabel;//array of TNodeLabel;
implementation
{$R *.dfm}
uses uConstUtils, uDMFunc, uUserFunc;
procedure TJgDsbm.LabelClick(Sender: TObject);
begin
// if (Sender as TNodeLabel).HaveChild then
// imgMap.Picture.LoadFromFile((Sender as TNodeLabel).PictureFile);
//(Sender as TNodeLabel).Picture;
end;
procedure TJgDsbm.ToolButton5Click(Sender: TObject);
var
iRet: Smallint;
begin
if isAdd then
iRet := AddSave
else
iRet := EditSave;
if iRet=0 then
begin
LoadNodeList;
RefreshItem(False);
end;
end;
procedure TJgDsbm.chkXsClick(Sender: TObject);
begin
btnMap.Visible := chkXs.Checked ;
btnSet.Visible := Chkxs.Checked;
end;
procedure TJgDsbm.imgMapMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
iX := X;
iY := Y;
imgMap.Hint := '('+trim(inttostr(x))+','+trim(inttostr(y))+')';
end;
procedure TJgDsbm.imgMapClick(Sender: TObject);
begin
posX.Value := iX;
posY.Value := iY;
end;
procedure TJgDsbm.btnMapClick(Sender: TObject);
begin
if dlgMap.Execute then
begin
if trim(dlgMap.FileName)<>'' then
sPicFile := trim(dlgMap.FileName);
end;
end;
procedure TJgDsbm.ToolButton8Click(Sender: TObject);
begin
Close;
end;
procedure TJgDsbm.FormResize(Sender: TObject);
var
i: Integer;
begin
for i:=0 to High(aNode) do
begin
aNode[i].Left := round(aNode[i].Parent.Width*aNode[i].X /aNode[i].ParentWidth);
aNode[i].Top := round(aNode[i].Parent.Height*aNode[i].Y /aNode[i].ParentHeight);
end;
end;
procedure TJgDsbm.RefreshItem(const Value:Boolean);
var
i: Integer;
begin
if isAdd then
edtBh.Enabled := Value;
edtMc.Enabled := Value;
posX.Enabled := Value;
posY.Enabled := Value;
imgMap.Enabled := Value;
if not Value then
imgMap.Hint := '';
chkXs.Enabled := Value;
if Value and chkXs.Checked then
begin
btnMap.Visible := True;
btnSet.Visible := True;
end
else
begin
btnMap.Visible := False;
btnSet.Visible := False;
end;
Edit1.Enabled := Value;
CheckBox1.Enabled := Value;
if CheckBox1.Checked then
SpinEdit1.Enabled := Value;
CheckBox3.Enabled := Value;
if CheckBox3.Checked then
begin
Edit2.Enabled := Value;
CheckBox2.Enabled := Value;
if CheckBox2.Checked then
SpinEdit2.Enabled := Value;
end;
CheckBox4.Enabled := Value;
if CheckBox4.Enabled then
begin
Label8.Enabled := CheckBox4.Checked;
Edit3.Enabled := CheckBox4.Checked;
end
else
begin
Label8.Enabled := False;
Edit3.Enabled := False;
end;
tvInfo.Enabled := not Value;
ToolButton1.Enabled := not Value;
ToolButton2.Enabled := not Value;
ToolButton3.Enabled := not Value;
ToolButton5.Enabled := Value;
ToolButton6.Enabled := Value;
for i:=0 to High(aNode) do
aNode[i].Enabled := not Value;
if iNode <> -1 then
tvInfo.Select(tvInfo.Items[iNode]);
if high(aNode) = -1 then
begin
ToolButton2.Enabled := False;
ToolButton3.Enabled := False;
end;
end;
procedure TJgDsbm.ToolButton1Click(Sender: TObject);
begin
isAdd := True;
iDsJb := 0;
edtBh.Text := '';
edtMc.Text := '';
Edit1.Text := '';
Edit2.Text := '';
SpinEdit1.Value := 0;
SpinEdit2.Value := 0;
CheckBox3.Checked := False;
CheckBox1.Checked := False;
CheckBox2.Checked := False;
posX.Value := 0;
posY.Value := 0;
chkXs.Checked := False;
sPicFile := '';
RefreshItem(True);
end;
procedure TJgDsbm.ToolButton2Click(Sender: TObject);
begin
isAdd := False;
// tvInfo.Select(tvInfo.Items[iNode]);
RefreshNode;
RefreshItem(True);
end;
procedure TJgDsbm.ToolButton6Click(Sender: TObject);
begin
RefreshItem(False);
end;
procedure TJgDsbm.ToolButton3Click(Sender: TObject);
var
nRet: Smallint;
begin
if iNode = -1 then
exit;
if Application.MessageBox(pchar('是否要删除地市:'+aNode[iNode].Caption+'?'),
PMsgCaption,36)=7 then
exit;
nRet := DsbhDelete(aNode[iNode].Number);
if nRet=0 then
begin
DeleteNodeLabel(aNode,iNode);
tvInfo.Items.Delete(tvInfo.Items[iNode]);
if iNode > high(aNode) then
iNode := high(aNode);
RefreshItem(False);
Application.MessageBox('删除成功',PMsgCaption,64);
end
else
if nRet =3 then
Application.MessageBox('地市已经使用,不能删除!',PMsgCaption,48)
else
Application.MessageBox('删除失败',PMsgCaption,16);
end;
procedure TJgDsbm.FormCreate(Sender: TObject);
var
sCaption, sFile: String;
begin
ParentNode := '';
iNode := -1;
SetLength(aNode,0);
InitInfo;
RefreshItem(false);
RefreshNode;
sFile := ExtractFilePath(application.ExeName)+PMainMapFile;
ReadMainMap(sCaption,sFile);
if FileExists(sFile) then
imgMap.Picture.LoadFromFile(sFile);
end;
procedure TJgDsbm.LabelMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
iNode := IndexOfNodeLabel(aNode,(sender as TNodeLabel)); //(Sender as TNodeLabel).NodeIndex;
tvInfo.Select(tvInfo.Items[iNode]);
RefreshNode;
end;
function TJgDsbm.AddSave: Smallint;
var
Node: TNodeLabel;
iRet: Smallint;
begin
Result := -1;
if trim(edtBh.Text)='' then
begin
application.MessageBox('编号不能为空!',PMsgCaption,64);
edtBh.SetFocus;
exit;
end;
if ExistsNodeLabel(aNode,trim(edtBh.Text)) then
begin
application.MessageBox('编号已存在,请重新输入!',PMsgCaption,64);
edtBh.SetFocus;
exit;
end;
if trim(edtMc.Text)='' then
begin
application.MessageBox('名称不能为空!',PMsgCaption,64);
edtMc.SetFocus;
exit;
end;
if not IsRightIP(trim(Edit1.Text)) then
begin
application.MessageBox('服务器IP不正确!',PMsgCaption,64);
Edit1.SetFocus;
exit;
end;
if CheckBox1.Checked then
if SpinEdit1.Value =0 then
begin
application.MessageBox('服务器指定端口不能为零!',PMsgCaption,64);
SpinEdit1.SetFocus;
exit;
end;
if CheckBox3.Checked then
begin
if not IsRightIP(Trim(Edit2.Text)) then
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -