Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.28;
Скачать: CL | DM;

Вниз

Показ формы из Com объекта   Найти похожие ветки 

 
Stranger ©   (2003-04-17 11:15) [0]

Доброго времени суток уважаемые мастера!
Создаю Com объект от IDispatch

procedure TFrm_TestExe.Button1Click(Sender: TObject);
var
fITULogComObj : ITULogComObj; // Сам Com объект
fErrorStr,
fParamStr : WideString;
begin
fITULogComObj := nil;
fITULogComObj:= CoTULogComObj.Create;
if fITULogComObj <> nil then
With fITULogComObj do begin
SetConnection(Connection.ConnectionString);
SetParam("2003;1");
// RunTULog - показ формы
if RunTULog(fErrorStr, fParamStr, Frm_TestExe.Handle) = E_Fail then
showMessage(fErrorStr);
end;
end;


function TTULogComObj.RunTULog (out aErrorStr, aParamStr: WideString; aOwnerHandle : Integer): HResult;
begin
Result:= E_Fail;
try
Result := S_Ok;
TULog_Frm := TTULog_Frm.Create(nil);
with TULog_Frm do begin
SetYear(CurrentYear);
SetTULogViewType(TULogViewType);
Result := SetConnection(aErrorStr, Connection);
if Result = S_Ok then Show;
end;
except
on E : Exception do aErrorStr:= E.Message;
end;
end;

все работает, но если вместо
TULog_Frm := TTULog_Frm.Create(nil);
написать
TULog_Frm := TTULog_Frm.CreateParented(aOwnerHandle);
то форма создается но на экране не отображается,
как правильно отображать такую форму?
Форма создается от TForm


 
REA ©   (2003-04-17 11:52) [1]

Умного ничего не скажу, но
CreateParented Creates and initializes a control as the child of a specified non-VCL container.

Т.е. про формы там нет ничего - только про ActiveX control.


 
Stranger ©   (2003-04-17 12:20) [2]

to REA ©
Это я читал. Собственно форма тоже является в некотором смысле контролом. И вызов идет из внешнего exe файла.
Еще, фишка в том, что для D5 конструкция с CreateParented(aParentHandle) проходит нормально.


 
REA ©   (2003-04-17 15:42) [3]

ActiveX формы они несколько более другие.
А разницу смотрел в коде D5 и D6?
if Result = S_Ok then Show; - а результат S_Ok?
а Handle<>Nil?


 
Stranger ©   (2003-04-17 16:58) [4]

to REA ©
Разницы в исходном коде нет.
Result точно S_Ok, так как SetConnection - моя функция,
и Handle <> nil, проверял.
Собственно форма описывается так MyForm = class(TForm)? то есть форма обычная, просто она реализована там же где Com объект.



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

Текущий архив: 2003.04.28;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.044 c
3-91153
Askik
2003-04-09 11:59
2003.04.28
Как отлавливать в чем ошибка неудачного подключения к серверу?


3-91191
Ш-К
2003-04-10 07:23
2003.04.28
Убить поле


14-91527
Mike B.
2003-04-10 17:23
2003.04.28
Молоко


1-91256
Laxer
2003-04-14 15:25
2003.04.28
Определение дня недели


1-91251
Задница
2003-04-16 22:20
2003.04.28
АВТОРАН