Текущий архив: 2008.11.30;
Скачать: CL | DM;
Вниз
Проблема с получением параметров метода из 1C Найти похожие ветки
← →
JustI (2008-10-20 13:58) [0]Есть OLE сервер. В библиотеке типов для интерфейса объявлен один метод procedure Msg(S: OleVariant; I: OleVariant);
Вот код модуля реализующего интерфейс
unit Unit1;
{$WARN SYMBOL_PLATFORM OFF}
interface
uses
ComObj, ActiveX, Project1_TLB, StdVcl, Dialogs;
type
TTest = class(TAutoObject, ITest)
protected
procedure Msg(S: OleVariant; out Result: Integer); safecall;
end;
implementation
uses ComServ, unit2;
procedure TTest.Msg(S: OleVariant; out Result: Integer);
begin
ShowMessageFmt("%s", [S]);
Result := 666;
form2.Name := "zzzzz4343";
ShowMessage(form2.Name); //**************
end;
initialization
TAutoObjectFactory.Create(ComServer, TTest, Class_Test,
ciMultiInstance, tmApartment);
end.
Вопрос в следующем: почему при вызове из 1С метода Msg значение form2.Name оказывается равным "Form2" а не "zzzzz4343", и еще не возвращается значение out-переменной Result.
← →
clickmaker © (2008-10-20 14:04) [1]> не возвращается значение out-переменной Result
Result - зарезервированное слово для возвращаемого функцией значения.
Обзови по другому. AResult, н-р
и что такое вообще form2? где и когда она создается?
← →
Сергей М. © (2008-10-20 14:10) [2]TTest = class(TAutoObject, ITest)
protected
function Msg(S: OleVariant): Integer; safecall;
end;
← →
JustI (2008-10-20 14:13) [3]форма создается здесь же. Переопределяю метод Initialize.
procedure TTest.Initialize;
begin
inherited;
form2 := Tform2.Create(nil);
end;
← →
JustI (2008-10-20 14:24) [4]
> function Msg(S: OleVariant): Integer; safecall;
В этом случае 1С выдает ошибку плохая коллекция
← →
Сергей М. © (2008-10-20 14:26) [5]покажи код 1С-вызова ..
← →
JustI (2008-10-20 14:35) [6]Вот код
Процедура Get()
Перем Рез;
Компонент = СоздатьОбъект("Project1.Test");
Рез = Компонент.Msg("zzz");
Сообщить(Рез);
КонецПроцедуры
← →
Сергей М. © (2008-10-20 14:49) [7]Покажи текст тестового проекта целиком, включая текст Project1_tlb.pas
← →
JustI (2008-10-20 14:55) [8]Спасибо Сергей М.. Все разобрался, как обычно сам накосячил. С возвратом значений теперь все ясно.
Страницы: 1 вся ветка
Текущий архив: 2008.11.30;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.006 c