Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.005 c
2-1224221423
Sergey2
2008-10-17 09:30
2008.11.30
Прокрутка гиф-анимации в отдельном потоке при выполнении задачи


2-1223920451
Ruzzz
2008-10-13 21:54
2008.11.30
как работать с TSplitter у которого Align := alNone ?


15-1222674185
Slider007
2008-09-29 11:43
2008.11.30
С днем рождения ! 28 сентября 2008 воскресенье


15-1222677858
KygECHuK
2008-09-29 12:44
2008.11.30
Определение квалификиции специалиста по авто тестированию


15-1222674092
Slider007
2008-09-29 11:41
2008.11.30
С днем рождения ! 27 сентября 2008 суббота





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский