📄 unitlineinfo.pas
字号:
unit UnitLineInfo;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Spin, ComCtrls, DB, ADODB, Global, MapXLib_TLB, AnyPoster,
DBM_MSSQL;
type
TForm_LineInfo = class(TForm)
Button1: TButton;
Button2: TButton;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
edLineName: TEdit;
edScript: TEdit;
edLength: TSpinEdit;
Button3: TButton;
GroupBox2: TGroupBox;
ListView1: TListView;
edLineId: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure edLineIdKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
FIsOk: Boolean;
FLineId: Integer;
FMode: TConfigMode;
FUnitID: Integer;
FFeature: CMapXFeature;
FDBManager:TSQLServerDBManager;
FDBPoster:TDBPosterWithSQL;
procedure DisplayData;
procedure ApplayData;
public
{ Public declarations }
property IsOk:Boolean read FIsOk;
property Mode:TConfigMode read FMode write FMode;
property UnitID:Integer read FUnitID write FUnitID;
property LineId:Integer read FLineId write FLineId;
property Feature:CMapXFeature read FFeature write FFeature;
end;
var
Form_LineInfo: TForm_LineInfo;
function NewSDLineInfo(MapX:TMapXObject; AUnitID:Integer; AFt:Feature):Boolean;
function ConfigSDLineInfo(MapX:TMapXObject; AUnitID:Integer; AFt:Feature):Boolean;
implementation
uses
ADODBTools, UnitMainLinkObjects, BusinessDialogs, UnitQCAPIs,
WinControl, UnitDMLinks;
{$R *.dfm}
function NewSDLineInfo(MapX:TMapXObject; AUnitID:Integer; AFt:Feature):Boolean;
begin
with TForm_LineInfo.Create(nil) do
begin
try
Feature:=AFt;
Mode:=cmAdd;
UnitID:=AUnitID;
ShowModal;
Result:=IsOk;
if not Result then
MyDefInformation('您已取消属性设置,如要删除图形,请手动操作!')
finally
Free;
end;
end;
end;
function ConfigSDLineInfo(MapX:TMapXObject; AUnitID:Integer; AFt:Feature):Boolean;
begin
with TForm_LineInfo.Create(nil) do
begin
try
Feature:=AFt;
Mode:=cmModify;
UnitID:=AUnitID;
LineId:=StrToInt(AFt.KeyValue);
ShowModal;
Result:=IsOk;
finally
Free;
end;
end;
end;
procedure TForm_LineInfo.ApplayData;
begin
PostLineRecord(Feature,
FDBPoster,
UnitID,
StrToInt(edLineId.Text),
edLineName.Text,
edLength.Value,
edScript.Text,
nil,
True,
True,
True);
FLineId:=StrToInt(edLineId.Text);
end;
procedure TForm_LineInfo.Button1Click(Sender: TObject);
begin
ApplayData;
FIsOk:=True;
Close;
end;
procedure TForm_LineInfo.Button2Click(Sender: TObject);
begin
if Mode=cmAdd then
with dm_MainLinkObjects.PublicQuery do
begin
Close;
SQL.Text:='delete from t_DotLines where LineId='+IntToStr(LineId);
ExecSQL;
end;
Close;
end;
procedure TForm_LineInfo.DisplayData;
var
aItem:TListItem;
begin
with dm_MainLinkObjects.PublicQuery do
begin
Close;
SQL.Clear;
SQL.Add('select * from t_LinesLayer');
SQL.Add('where UnitID='+IntToStr(UnitID));
SQL.Add('and LineId='+IntToStr(LineId));
Open;
if not Eof then
begin
edLineId.Text:=FieldByName('LineID').AsString;
edLineName.Text:=FieldByName('LineName').AsString;
edLength.Value:=FieldByName('Length').AsInteger;
edScript.Text:=FieldByName('Script').AsString;
Close;
SQL.Clear;
SQL.Add('select b.DotID,b.DotName from t_DotLines a, t_CtrlDotsLayer b');
SQL.Add('where a.LineID='+IntToStr(LineId)+' and a.DotID=b.DotID');
Open;
while not Eof do
begin
aItem:=ListView1.Items.Add;
aItem.Caption:=FieldByName('DotId').AsString;
aItem.SubItems.Add(FieldByName('DotName').AsString);
Next;
end;
end;
Close;
end;
end;
procedure TForm_LineInfo.FormShow(Sender: TObject);
begin
FIsOk:=False;
if Mode=cmModify then
DisplayData
else begin
edLineId.Text:=IntToStr(GetNewIntID(dm_MainLinkObjects.PublicQuery,
't_LinesLayer', 'LineID', '', 1));
edLineName.Text:=edLineId.Text+'号线';
end;
end;
procedure TForm_LineInfo.FormCreate(Sender: TObject);
begin
FDBManager:=TSQLServerDBManager.Create;
FDBPoster:=TDBPosterWithSQL.Create;
FDBPoster.DBManager:=FDBManager;
FDBPoster.Engine:=dm_Links.DBMachine1;
FLineId:=-1;
end;
procedure TForm_LineInfo.FormDestroy(Sender: TObject);
begin
FDBManager.Free;
FDBPoster.Free;
end;
procedure TForm_LineInfo.edLineIdKeyPress(Sender: TObject; var Key: Char);
begin
IntegerEditKeyPress(TEdit(Sender), Key);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -