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

📄 easyquery.pas

📁 校园GIS系统——介绍校园个部门
💻 PAS
字号:
unit EasyQuery;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, MapObjects2_TLB, Buttons;

type
  TEasyFrm = class(TForm)
    CbbName: TComboBox;
    Label1: TLabel;
    BbConcel: TBitBtn;
    BbQuery: TBitBtn;
    procedure FormActivate(Sender: TObject);
    procedure BbConcelClick(Sender: TObject);
    procedure BbQueryClick(Sender: TObject);
    procedure CbbNameKeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  EasyFrm: TEasyFrm;

implementation

uses Main;

{$R *.DFM}

procedure TEasyFrm.FormActivate(Sender: TObject);
var
ThisRecord:ImoRecordSet;
begin
  Cbbname.Text:='';
  CurrentLayer:=ImoMaplayer(MainFrm.MainMap.Layers.Item('白龙校区建筑1:500'));
  ThisRecord:=Currentlayer.Records;
  ThisRecord.MoveFirst;
  While not ThisRecord.EOF do
  begin
     //过滤重复值
    CbbName.items.Add(ThisRecord.Fields.Item('MC').ValueAsString);
    ThisRecord.MoveNext;
  end;
end;

procedure TEasyFrm.BbConcelClick(Sender: TObject);
begin
  EasyFrm.Close;
end;

procedure TEasyFrm.BbQueryClick(Sender: TObject);
var
Mypolygon:    ImoPolygon;
Myfield:      IMoField;
begin
  CurrentLayer:=ImoMaplayer(MainFrm.MainMap.Layers.Item('白龙校区建筑1:500'));
         //按地名模糊查询
  if CbbName.Text<>''then
  begin
    MainFrm.FindRecord:= CurrentLayer.SearchExpression('MC like'+' '+chr(39)+CbbName.Text+'%'+chr(39));
    if not Mainfrm.FindRecord.EOF then
    begin
      
      Myfield:= MainFrm.FindRecord.Fields.Item('shape');
      Mypolygon := IMoPolygon(IDispatch(Myfield.value));
      mainfrm.mainmap.CenterAt(Mypolygon.Centroid.x,Mypolygon.centroid.y);
      MainFrm.Mainmap.FlashShape(MainFrm.FindRecord.Fields.Item('Shape').Value,4);
      if MainFrm.Mnzl.Checked then mainFrm.ShowZl();
      MainFrm.AttrShow();
    end
    else
    begin
      showmessage('没有记录,请重试');
      exit;
    end;
  MainFrm.FindRecord:=nil;

  end
  else
   showmessage('请输入地名');
end;

procedure TEasyFrm.CbbNameKeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then BbQuery.Click;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -