分类:
2006-10-23 10:04:05
动态加载一个目录下所有图层:
var path,fileName:string;
myLayerInfo:LayerInfo;
hFindFile:Cardinal;
FindFileData:WIN32_FIND_DATA;
begin
path:=ExtractFilePath(Application.ExeName)+'map\';
ChDir(path);
hFindFile:=FindFirstFile('*.TAB',FindFileData);//找到第一个扩展名为tab的文件
if hFindFile <>windows.INVALID_HANDLE_VALUE then
begin
repeat
filename:=FindFileData.cFileName;
{在这里可以实现对当前文件的处理,比如文件的解密等功能,这样对每个土层都能加密了,不过显然打开速度要慢很多}
try
myLayerInfo := CoLayerInfo.Create;
myLayerInfo.Type_ := miLayerInfoTypeTab;
myLayerInfo.AddParameter('FileSpec',path+filename );
myLayerInfo.AddParameter('Name', ExtractFileName(fileName) );
Map1.Layers.Add(myLayerInfo, EmptyParam);//加载图层
except
end;
until (FindNextFile(hFindFile,FindFileData)=false);
WindowS.FindClose(hFindFile); ;
end;
end;