📄 frmmapchild.pas
字号:
unit frmMapChild;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uNodeLabel, StdCtrls, ComCtrls, ExtCtrls, ImgList, ToolWin, JPEG,
AppEvnts, SOAPHTTPTrans;
type
TmapChild = class(TForm)
CoolBar1: TCoolBar;
ToolBar1: TToolBar;
ImageList1: TImageList;
ImageList2: TImageList;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
imgMap: TImage;
tvInfo: TTreeView;
ImageList3: TImageList;
AppEvents: TApplicationEvents;
procedure FormCreate(Sender: TObject);
procedure tvInfoChange(Sender: TObject; Node: TTreeNode);
procedure FormDestroy(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure Panel1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure Panel2DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure Panel3DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure tvInfoClick(Sender: TObject);
procedure AppEventsException(Sender: TObject; E: Exception);
private
procedure LoadDsInfo;
procedure LabelMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure LoadNodeList;
{ Private declarations }
public
{ Public declarations }
iNode: Smallint;
procedure LabelClick(Sender: TObject);
procedure RefreshNode;
published
end;
var
mapChild: TmapChild;
aNode: ANodeLabel;
implementation
{$R *.dfm}
uses uDMFunc, uConstUtils, uVarUtils;
procedure TmapChild.FormCreate(Sender: TObject);
var
sCaption, sFile: String;
begin
SetLength(aNode,0);
sFile := ExtractFilePath(application.ExeName)+PMainMapFile;
if pubReLoadMainMap then
ReadMainMap(sCaption,sFile);
if FileExists(sFile) then
try
imgMap.Picture.LoadFromFile(sFile);
except
application.MessageBox('主地图文件格式不正确,不能装载!',PMsgCaption,48);
end;
{
ReadMainMap(sCaption,sFile);
imgMap.Picture.LoadFromFile(sFile);
}
LoadDsInfo;
end;
procedure TmapChild.LabelClick(Sender: TObject);
begin
end;
procedure TmapChild.LabelMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
iNode := IndexOfNodeLabel(aNode,(sender as TNodeLabel));
tvInfo.Select(tvInfo.Items[iNode]);
RefreshNode;
end;
procedure TmapChild.LoadDsInfo;
var
i,l: smallint;
begin
DsInfo(aNode,ExtractFilePath(Application.ExeName),Panel3,Self);
l:= High(aNode);
for i:=0 to l do
begin
aNode[i].OnClick := LabelClick;
aNode[i].OnMouseDown := LabelMouseDown;
if copy(pubLoginSsds,i+1,1)='1' then
aNode[i].Enabled := True
else
aNode[i].Enabled := False;
end;
LoadNodeList;
end;
procedure TmapChild.LoadNodeList;
var
i, iC: Integer;
begin
iC := High(aNode);
tvInfo.Items.Clear;
for i:=0 to iC do
begin
tvInfo.Items.Add(nil, aNode[i].Number +' : '+ aNode[i].Caption);
tvInfo.Items[i].ImageIndex :=2;
tvInfo.Items[i].SelectedIndex :=3;
end;
end;
procedure TmapChild.RefreshNode;
begin
end;
procedure TmapChild.tvInfoChange(Sender: TObject; Node: TTreeNode);
begin
tvInfo.Select(Node);
if aNode[tvInfo.Selected.Index].Enabled then
begin
iNode := tvInfo.Selected.Index;
RefreshNode;
end
else
begin
tvInfo.Select(tvInfo.Items[iNode]);
end;
end;
procedure TmapChild.FormDestroy(Sender: TObject);
var
i: smallint;
begin
for i:=0 to high(aNode) do
aNode[i].Free;
setlength(aNode,0);
end;
procedure TmapChild.FormResize(Sender: TObject);
var
i,l: smallint;
begin
l := High(aNode);
for i:=0 to l 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 TmapChild.Panel1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
if (source=panel2) then
begin
accept:=true;
panel1.Width :=x;
end
else
accept:=false;
Resize;
end;
procedure TmapChild.Panel2DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
if source=sender then
accept:=true
else
accept:=false;
end;
procedure TmapChild.Panel3DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
if (source=panel2) then
begin
accept:=true;
panel1.Width :=panel1.Width+x;
end
else
accept:=false;
Resize;
end;
procedure TmapChild.tvInfoClick(Sender: TObject);
begin
if aNode[tvInfo.Selected.Index].Enabled then
begin
iNode := tvInfo.Selected.Index;
end
else
tvInfo.Select(tvInfo.Items[iNode]);
{ if aNode[iNode].Font.color <> clRed then
aNode[iNode].Font.color := clRed
else
aNode[iNode].Font.color := clBlack;
}
end;
procedure TmapChild.AppEventsException(Sender: TObject;
E: Exception);
begin
if (E is ESOAPHTTPException) then
begin
AppLication.MessageBox('无法连接指定WebService服务器,请检查网络是否已连接及设置是否正确',PMsgCaption,64);
// exit;
end
else
inherited;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -