Имя: Пароль:
1C
1С v8
Вопрос по созданию ВК на Delphi
0 shurik_klgd
 
05.08.11
01:52
прочел
Книга знаний: Написание внешних компонент для 1С (Delphi)
автору спасибо

Подскажите как создать Функцию, которая возвращала бы значение, к примеру, целочисленное, если это вообще возможно

Менять как я понял нужно здесь
function T_vk_object.meth1(mode: TMode): String;
 var s: String;
 var ms: Integer;
 begin
   case mode of
     m_rus_name: Result:='ВсплывающаяПодсказка';
     m_eng_name: Result:='BalloonTooltip';
     m_n_params: g_NParams:=2; //Количество параметров функции
     m_execute: begin
       //Извлекаем параметры функции, переданные из 1С
       s:=GetParamAsString(0);//сообщение
       ms:=GetParamAsInteger(1);//задержка в мс
       //Показываем сообщение в трее
       sleep_icon(s, ms);
     end;
   end;//case
 end;

Нужно, чтобы, к примеру, Объект.ВсплывающаяПодсказка("блабла",1000) возвращала, например 1
1 GROOVY
 
05.08.11
02:07
Для 8ки интерфейсные ВК нельзя вроде делать.
2 shurik_klgd
 
05.08.11
02:19
(1) это текст из примера, я вообще другое делаю :)
3 shurik_klgd
 
05.08.11
02:20
+(2) ShowMessage в 8-ке вываливает окно кстати, это точно
4 shurik_klgd
 
05.08.11
02:46
И еще попутно вопрос:

в delphi есть значение типа Longword (2 байта, положительное).
Так вот если оно больше 2147483647=2^31-1, то в 1С приходит уже отрицательное число, т.е. происходит преобразование Longword к Integer. Можно как-нибудь обойти?

p.s. Смотрю в Delphi значение равно 4154266431, в 1С оноже равно -140700865
5 Rie
 
05.08.11
03:37
(0) Это возможно. Менять можно и там :-)
Посмотри, что там в AddinObj написано насчёт CallAsFunc. И присвой значение соответствующему свойству.
(Хотя шаблон Ромикса - вовсе не догма, а лишь руководство в действию :-).

(4) А зачем?
6 Rie
 
05.08.11
03:38
(1) В толстом клиенте - прекрасно работают.
7 shurik_klgd
 
05.08.11
04:09
(5) По поводу (0) понял куда копать, спасибо

По (4), всего лишь для того, чтобы не писать потом

Если Объект.Свойство >=0 Тогда
Значение = Объект.свойство;
Иначе
Значение = 4294967265 + Объект.свойство;
8 Rie
 
05.08.11
04:12
(7) Верни строку. 1С сама преобразует её в число.
9 shurik_klgd
 
05.08.11
04:16
(8) гыг... пойду-ка я высплюсь

спасибо:)