Вниз
Скачать: 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 вся ветка

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



Память: 0.46 MB
Время: 0.011 c
3-91225
xxxCrazyManxxx
2003-04-10 21:09
2003.04.28
Помогите на SQL реализовать алгоритм исключающий повторяющиеся


3-91158
Rustik
2003-04-09 13:42
2003.04.28
Мастера подскажите пжлста Как реализовать вставку записей в базу


14-91480
me2
2003-04-10 09:41
2003.04.28
DirectX 9 SDK


14-91503
Sir Alex
2003-04-10 12:05
2003.04.28
Миграция пользователей в Active Directory и Домен


1-91300
Alta
2003-04-15 11:56
2003.04.28
файл - чтение и запись




   Наверх