procedure TForm1.updatePositionMenu();
var
menuSql,subSql:string;
MyMenuItem,MySubItem: TMenuItem;
begin
MenuSql:='select * from YKL_CityPosition where OnLevel=1';
DataDMDlg.PosMenuADO.Close;
DataDMDlg.PosMenuADO.SQL.Clear;
DataDMDlg.PosMenuADO.SQL.Add(MenuSql);
DataDMDlg.PosMenuADO.Open;
subSql:='select * from YKL_CityPosition where OnLevel=2';
DataDMDlg.SubMenuADO.Close;
DataDMDlg.SubMenuADO.SQL.Clear;
DataDMDlg.SubMenuADO.SQL.Add(subSql);
DataDMDlg.SubMenuADO.Open;
PositionMenu.Items.Clear;
DataDMDlg.PosMenuADO.First;
while NOT DataDMDlg.PosMenuADO.Eof do
begin
MyMenuItem:=TMenuItem.Create(Self);
MyMenuItem.Caption:=DataDMDlg.PosMenuADO.Fields[1].Value;
MyMenuItem.OnClick:=MyMenuItemClick;
MyMenuItem.Tag:=DataDMDlg.PosMenuADO.Fields[0].Value;
DataDMDlg.SubMenuADO.First;
While NOT DataDMDlg.SubMenuADO.EOF do
begin
if DataDMDlg.SubMenuADO.Fields[6].Value=MyMenuItem.Caption then
begin
MySubItem:=TMenuItem.Create(Self);
MySubItem.Caption:=DataDMDlg.SubMenuADO.Fields[1].Value;
MySubItem.OnClick:=MyMenuItemClick;
MySubItem.Tag:=DataDMDlg.SubMenuADO.Fields[0].Value;
MyMenuItem.Add(MySubItem);
MyMenuItem.Tag:=0;
end;
DataDMDlg.SubMenuADO.Next;
procedure TForm1.MyMenuItemClick(Sender: TObject);
var
PosSql:string;
Pzoom,PLong,Plat:double;
begin
if (sender as TMenuItem).Tag<>0 then
begin
PosSql:='select PZoom,PLong,PLat from YKL_CityPosition where ID='+inttostr((sender as TMenuItem).Tag);
DataDMDlg.SubMenuADO.Close;
DataDMDlg.SubMenuADO.SQL.Clear;
DataDMDlg.SubMenuADO.SQL.Add(PosSql);
DataDMDlg.SubMenuADO.Open;
pzoom:=DataDMDlg.SubMenuADO.Fields[0].value;
PLong:=DataDMDlg.SubMenuADO.Fields[1].value;
Plat:=DataDMDlg.SubMenuADO.Fields[2].value;
Map1.ZoomTo(pzoom,PLong,Plat);
end;