位图显示地图

 client.ini
[screen]
x=1024
y=768

map.mdb
map_id map_chk_station map_x_min map_x_max map_y_min map_y_max
1 1号监测站 574  613  283  321
2 2号监测站 517  563  127  162
3 4号监测站 854  899  34  74

procedure TFormMain.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  xScreen,yScreen,xMin,xMax,yMin,yMax,xBase,yBase:Integer;
  ini:TIniFile;
  filename,s:string;
begin
  inherited;
  filename:=ExtractFilePath(Application.ExeName)+'client.ini';
  ini:=TIniFile.Create(filename);
  try
    xBase:=ini.ReadInteger('screen','x',0);
    yBase:=ini.ReadInteger('screen','y',0);
  finally
    ini.Free;
  end;
  xScreen:=Screen.Width;
  yScreen:=Screen.Height;
  paneXY.Caption:=Format('横坐标:%s 纵坐标:%s',[IntToStr(X),IntToStr(Y)]);
  lock;
  try
    dm.cdsTemp.Data:=dm.sc.AppServer.opensql('select * from map');
    with dm.cdsTemp do
    begin
      First;
      while not Eof do
      begin
        xMin:=Round(xScreen/xbase*FieldValues['map_x_min']);
        xMax:=Round(xScreen/xbase*FieldValues['map_x_max']);
        yMin:=Round(yScreen/ybase*FieldValues['map_y_min']);
        yMax:=Round(yScreen/ybase*FieldValues['map_y_max']);
        if (X>=xMin) and (X<=xMax) then
        if (Y>=yMin) and (Y<=yMax) then
        begin
          s:=Format('%s [压强:%s] [水位:%s] [PH:%s] [余氯:%s] [浊度:%s]',
            [FieldValues['map_chk_station'],'','','',
            '','']);
          paneData.Caption:=s;
        end else
          paneData.Caption:='';
        Next;
      end; 
    end; 
  finally
    unlock;
  end;
end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值