张
张问
Unregistered / Unconfirmed
GUEST, unregistred user!
在delphi中集成mapinfo。先获取一个form或panel的句柄,然后用集成的mapinfo打开一个
mapinfo的*.tab表,将图形放在form或panel上显示。这很好理解。(以panel1为例,panel
放在mainform上,align的方式为alClient, mainform的windowstate状态是wsNormal.)
代码如下:(mapin为ole 类 variant 型)
procedure open;
var command,sWinhandle:string;
begin
Str(panel1.Handle,sWinHandle);
Command:='Set Nextdo
cument Parent '+sWinHandle+' Style 1';
mapin.do(Command);
Command:='Map From "'+tablename+'"';
//tablename是已获取的mapinfo表名,可直接打开。
mapin.do(Command);
Str(mainform.Handle,sWinHandle);
//mainform是主form
mapin.do('Set Application Window ' + sWinHandle);
end;
这样做的问题是当我将mainform最大化或缩小时,panel随之最大化(或缩小),但是
mapinfo的图的范围却仍然局限于刚打开的范围。请问我如何将图和panel一起放大呢?
或者是我从mainform调用另外一个form,把图放在上面显示,出现了同样的问题。我如何
解决这种问题,使得mapinfo的*.tab表在其载体上的位置随载体的大小保持原来的比例和
位置呢 ?(如同在mapinfo中一样的效果)