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

📄 unitlineinfo.pas

📁 此代码是关于mapgis的在
💻 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 + -