Вниз
Скачать: CL | DM;

Проблема с экспертом (IOTAFormEditor)   Найти похожие ветки 

← →
Mutex   (2005-05-05 19:30) [0]

Пишу эксперт, в котором мне нужно получить доступ ко всем формам Группы Проектов. Для этого пытаюс перебрать все модули проекта и найти у них интерфейс формы, но ни чего не выходит - перерыл несколько тем в инете, но я все делаю так как в них описано и не могу получить ссылку на нужный мне интерфейс. Вот простой код проверки:

class function TfLanguageManager.GetFormEditor(OTAProject: IOTAProject): IOTAFormEditor;
var
 i: integer;
begin
 // Вот тут, по идее, среди модулей проекта должен быть эдитор формы, но его нет!!!
 for i := 0 to OTAProject.ModuleFileCount - 1 do
   if OTAProject.ModuleFileEditors[i].QueryInterface(IOTAFormEditor, Result) = S_OK then
   begin
     ShowMessage("FormEditor supported");
     Exit;
   end;

   ShowMessage("FormEditor not supported");
end;

procedure TfLanguageManager.FormCreate(Sender: TObject);
var
 i: integer;
begin
 for i := 0 to OTAProjectGroup.ProjectCount - 1 do
   GetFormEditor(OTAProjectGroup.Projects[i]);
end;

class function TfLanguageManager.OTAProjectGroup: IOTAProjectGroup;
var
 Obj: IUnknown;
begin
 Result := nil;
 Obj := EnumOTAModuleServices(IOTAProjectGroup);
 if Assigned(Obj) then
   Result := Obj as IOTAProjectGroup;
end;

class function TfLanguageManager.EnumOTAModuleServices(
 const IID: TGUID): IUnknown;
var
 i: integer;
 OTAModuleServices: IOTAModuleServices;
 OTAModule: IOTAModule;
begin
 Result := nil;
 OTAModuleServices := TfLanguageManager.OTAModuleServices;
 for i := 0 to OTAModuleServices.ModuleCount - 1 do
 begin
   OTAModule := OTAModuleServices.Modules[i];
   if OTAModule.QueryInterface(IID, Result) = S_OK then
     Break;
 end;
end;


Кто нить знает в чем может быть дело?


← →
Mutex   (2005-05-11 19:59) [1]

Проблема решена



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.024 c
14-1132137972
pasha_golub
2005-11-16 13:46
2005.12.04
Перевод песни


14-1132129270
Антоний
2005-11-16 11:21
2005.12.04
Про обновление Win2000ProRus


3-1129878933
BerkeleyMan
2005-10-21 11:15
2005.12.04
TClientDataset


1-1131070651
Andreika_
2005-11-04 05:17
2005.12.04
dll + xml = Debugged Fault Notification


5-1114449399
FunkyByte
2005-04-25 21:16
2005.12.04
Как отключить модуль от пакета?




   Наверх