![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с получением параметров метода из 1C
JustI © (2008-10-20 13:58:00)Есть 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.
JustI (2008-10-20 14:55:00) [1]Спасибо Сергей М.. Все разобрался, как обычно сам накосячил. С возвратом значений теперь все ясно.
Сергей М. (2008-10-20 14:49:00) [2]Покажи текст тестового проекта целиком, включая текст Project1_tlb.pas
JustI (2008-10-20 14:35:00) [3]Вот код
Процедура Get()
Перем Рез;
Компонент = СоздатьОбъект("Project1.Test");
Рез = Компонент.Msg("zzz");
Сообщить(Рез);
КонецПроцедуры
Сергей М. (2008-10-20 14:26:00) [4]покажи код 1С-вызова ..
JustI (2008-10-20 14:24:00) [5]
> function Msg(S: OleVariant): Integer; safecall;
В этом случае 1С выдает ошибку плохая коллекция
JustI (2008-10-20 14:13:00) [6]форма создается здесь же. Переопределяю метод Initialize.
procedure TTest.Initialize;
begin
inherited;
form2 := Tform2.Create(nil);
end;
Сергей М. (2008-10-20 14:10:00) [7]TTest = class(TAutoObject, ITest)
protected
functionMsg(S: OleVariant): Integer; safecall;
end;
clickmaker (2008-10-20 14:04:00) [8]> не возвращается значение out-переменной Result
Result - зарезервированное слово для возвращаемого функцией значения.
Обзови по другому. AResult, н-р
и что такое вообще form2? где и когда она создается?