Удалось решить проблему ArcObjects c Delphi .
1.Нужно в реестре сделать копии записей в ветке [HKEY_CLASSES_ROOT\TypeLib\
где название раздела a.0 с именем 10.0 для всех модулей как это написано здесь
http://forums.arcgis.com/threads/4100-arcgis-10-and-delphi2. Создать пакет с помощью утилиты tlibimp.exe как указано здесь
http://gis-lab.info/forum/viewtopic.php?t=5183? добавив дополнительно библиотеку ArcGISVersion.dll из ProgramFiles\Common files\Arcgis\bin
3. В проекте перед выполнением кода необходимо выполнить дополнительную процедуру. Ну как то так:
program Project1;
uses
Forms,
ArcGISVersionLib_TLB,
esriSystem_tlb,
ActiveX,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
procedure InitApp(app: TApplication );
var
AoInitialize: IAoInitialize;
status: TOleEnum;
res: HRESULT;
bool_res: WordBool;
verManager : TVersionManager;
i_agVersion : IArcGISVersion;
begin
verManager := TVersionManager.Create(app);
i_agVersion := verManager.DefaultInterface as IArcGISVersion;
res := i_agVersion.LoadVersion(ArcGISVersionLib_TLB.esriArcGISEngine,'10.0',bool_res);
if (res <> S_OK) then
begin
Exit;
end;
if (not bool_res) then
begin
Exit;
end;
AoInitialize:=CoAoInitialize.Create as IAoInitialize;
status := AoInitialize.IsProductCodeAvailable(esriSystem_TLB.esriLicenseProductCodeEngineGeoDB );
if (status <> esriSystem_TLB.esriLicenseAvailable) then
begin
Exit;
end
else
begin
status := AoInitialize.Initialize(esriSystem_TLB.esriLicenseProductCodeEngine );
if (res <> S_OK) then
begin
Exit;
end;
if (status <> esriSystem_TLB.esriLicenseCheckedOut) then
begin
Exit;
end;
end;
end;
begin
Application.Initialize;
InitApp(Application);
Application.CreateForm(TForm1, Form1);
Application.Run;
end.