Здравствуйте.
Делаю пакетную загрузку миф\мид в проект
Посмотрел SDK, сделал обертки API функций
Сделал маленький тест на 1 слой.
Все работает! Сит создается, объекты присутствуют, но все без кода, т.к. в семантике его и нет.
Но т.к. в си не силен, пример до конца не могу понять.
Подскажите какой и куда передать параметр, чтобы сразу назначить нужный код создаваемым объектам,
как это сделано в панораме.
В тесте, я ему пытался установить код 71123000, но что-то не вышло.[CODE]procedure TForm7.Button2Click(Sender: TObject);
var
MIFTOMAP: HMIFTOMAP;
Handle : HMESSAGE;
NameMif: string;
NameRsc: string;
ProjectName: string;
regname: string;
mapname: string;
scale: Integer;
semnumber: Integer;
rscininame: String;
CodeName: AnsiString;
codetype: Integer;
Incode: Integer;
map: HMAP;
rsc: HRSC;
res : Integer;
addflag: Integer;
ischangexy: Integer;
frec: Integer;
isutf8: Integer;
ismifsave: Integer;
isdrawsave: Integer;
begin
Handle := 0;
NameMif := 'z:\work\tst.mif';
NameRsc := 'z:\work\tst.rsc';
ProjectName := '';//'z:\work\prj.prj';
scale := 10000;
semnumber := 0;
rscininame := '';
CodeName := '';
codetype := 0;
rsc := mapOpenRsc(GTKPChar(GTKString(NameRsc)));
Incode := mapGetRscObjectCodeByNumber(rsc, 71123000, OL_SQUARE);
mapName := 'z:\work\test.sit';
regName := 'test';
map:= 0;
addFlag:= 0;
ischangexy := 0;
frec := 0;
isutf8 := 0;
ismifsave:= 1;
isdrawsave:= 0;
MIFTOMAP := mifInitLoadToMapEx(
handle,
PChar(NameMif),
PChar(NameRsc),
PChar(ProjectName),
scale,
semnumber,
PChar(rscininame),
sizeof(rscininame),
PAnsiChar(CodeName),
sizeof(CodeName),
codetype,
Incode
);
try
res := mifSetupLoadToMap(
MIFTOMAP,
PChar(NameMif),
PAnsiChar(CodeName),
semnumber,
Incode,
ismifsave,
isdrawsave
);
res := mifLoadToMapUn(
MIFTOMAP,
map,
PChar(NameMif),
PChar(mapName),
PChar(NameRsc),
PChar(regname),
scale,
semnumber,
addFlag,
ischangexy,
frec,
isutf8
);
finally
mifFreeLoadToMap(MIFTOMAP);
mapCloseRsc(rsc);
end;
end;[/CODE]
Делаю пакетную загрузку миф\мид в проект
Посмотрел SDK, сделал обертки API функций
Сделал маленький тест на 1 слой.
Все работает! Сит создается, объекты присутствуют, но все без кода, т.к. в семантике его и нет.
Но т.к. в си не силен, пример до конца не могу понять.
Подскажите какой и куда передать параметр, чтобы сразу назначить нужный код создаваемым объектам,
как это сделано в панораме.
В тесте, я ему пытался установить код 71123000, но что-то не вышло.[CODE]procedure TForm7.Button2Click(Sender: TObject);
var
MIFTOMAP: HMIFTOMAP;
Handle : HMESSAGE;
NameMif: string;
NameRsc: string;
ProjectName: string;
regname: string;
mapname: string;
scale: Integer;
semnumber: Integer;
rscininame: String;
CodeName: AnsiString;
codetype: Integer;
Incode: Integer;
map: HMAP;
rsc: HRSC;
res : Integer;
addflag: Integer;
ischangexy: Integer;
frec: Integer;
isutf8: Integer;
ismifsave: Integer;
isdrawsave: Integer;
begin
Handle := 0;
NameMif := 'z:\work\tst.mif';
NameRsc := 'z:\work\tst.rsc';
ProjectName := '';//'z:\work\prj.prj';
scale := 10000;
semnumber := 0;
rscininame := '';
CodeName := '';
codetype := 0;
rsc := mapOpenRsc(GTKPChar(GTKString(NameRsc)));
Incode := mapGetRscObjectCodeByNumber(rsc, 71123000, OL_SQUARE);
mapName := 'z:\work\test.sit';
regName := 'test';
map:= 0;
addFlag:= 0;
ischangexy := 0;
frec := 0;
isutf8 := 0;
ismifsave:= 1;
isdrawsave:= 0;
MIFTOMAP := mifInitLoadToMapEx(
handle,
PChar(NameMif),
PChar(NameRsc),
PChar(ProjectName),
scale,
semnumber,
PChar(rscininame),
sizeof(rscininame),
PAnsiChar(CodeName),
sizeof(CodeName),
codetype,
Incode
);
try
res := mifSetupLoadToMap(
MIFTOMAP,
PChar(NameMif),
PAnsiChar(CodeName),
semnumber,
Incode,
ismifsave,
isdrawsave
);
res := mifLoadToMapUn(
MIFTOMAP,
map,
PChar(NameMif),
PChar(mapName),
PChar(NameRsc),
PChar(regname),
scale,
semnumber,
addFlag,
ischangexy,
frec,
isutf8
);
finally
mifFreeLoadToMap(MIFTOMAP);
mapCloseRsc(rsc);
end;
end;[/CODE]