Вниз
Скачать: 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.019 c
14-91490
vopros
2003-04-10 12:14
2003.04.28
Кто нибудь знает что нибудь про программиование


14-91553
Johnmen
2003-04-11 15:46
2003.04.28
ВНИМАНИЕ!!! Голосование!!! Лучший Смит&Вессон!!!


3-91183
Stelius
2003-04-08 21:35
2003.04.28
Почему не воспринимает русские символы?


14-91518
Deadlock
2003-04-08 04:19
2003.04.28
Сплайны


8-91411
ЮРИЙ_К
2003-01-24 12:36
2003.04.28
TImage при загрузке передергивается




   Наверх