Вниз
Скачать: 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.025 c
2-1132174640
DillerXX
2005-11-16 23:57
2005.12.04
Чтение данных


2-1131972329
abu
2005-11-14 15:45
2005.12.04
Свойства как элементы массива-записи


5-1114161638
Бывший студент
2005-04-22 13:20
2005.12.04
Invalidate в design-time


14-1131977181
Ильичев С.А.
2005-11-14 17:06
2005.12.04
Данные в анкете


8-1116052799
ИгорьВал
2005-05-14 10:39
2005.12.04
Как работать с EXIF. Добавить свое/изменить определенное поле.




   Наверх