Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.02.26;
Скачать: CL | DM;

Вниз

Библиотека типов (COM)   Найти похожие ветки 

 
Scott Storch ©   (2011-11-16 17:47) [0]

Как в библиотека типов (COM) для метода интерфейса добавить параметр с дефолтовым значением (необязательный).

На вкладке "Parameters" окна библиотеки типов делаю "Add" - добавляю параметр с именем "Mode", кликаю на столбце "Modifier", в отобразившемся окне "Parameter Flag" ставлю галочки для "In", "Has Defaul Value", указываю значение в поле "Default Value" = 1 В итоге после в TLB-файле оказывается:

IConnection = interface(IDispatch)
 ["{111B152D-8EA3-4AC2-A4B2-BAF79EFA2701}"]
 function UpdateShop(UpdateMode: Integer): Integer; safecall;
end;

Что не так?


 
Dimka Maslov ©   (2011-11-16 18:04) [1]

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


 
Scott Storch ©   (2011-11-16 18:12) [2]

нифига не работает. когда вызываю метод из экземпляра ком-объекта, пишет, что нужно указать параметр, несмотря на то, что в библиотеке типов указано для него дефолтовое значение. не понятно, почему метод интерфейса генерится не

function UpdateShop(UpdateMode: Integer = 1): Integer; safecall;

а

function UpdateShop(UpdateMode: Integer): Integer; safecall;


 
Dimka Maslov ©   (2011-11-16 18:19) [3]

А может это не баг, а фича?

Кроме того, что мешает объявить такой же интерфейс, но с другим именем самому в другом месте программы, если уж очень надо?


 
han_malign   (2011-11-17 10:25) [4]

Optional Optional parameter. The Parameter type must be VARIANT and all subsequent parameters must also be optional. Note that when you import a method with optional parameters, Delphi does not add default values to the interface. They are still optional, however, and when you call them you can pass EmptyParam rather than supplying a value.
Has Default Value
Indicates an optional parameter that has a default value. The Optional flag must also be set, and the default value specified in the Default value edit box. The specified value must be the same type as the parameter.



Страницы: 1 вся ветка

Текущий архив: 2012.02.26;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.008 c
15-1320861739
Вспученный
2011-11-09 22:02
2012.02.26
Как посмотреть видео в контакте с ошибкой доступа?


6-1252154752
lunev_denis
2009-09-05 16:45
2012.02.26
Indy и докачка файлов через IdFTP


15-1320807493
Kerk
2011-11-09 06:58
2012.02.26
Большие сложные GUI


15-1320870602
Юрий
2011-11-10 00:30
2012.02.26
С днем рождения ! 10 ноября 2011 четверг


11-1242230322
boguslaw
2009-05-13 19:58
2012.02.26
koledb