Форум: "Основная";
Текущий архив: 2003.04.28;
Скачать: [xml.tar.bz2];
ВнизПоказ формы из 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c