Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2012.02.26;
Скачать: [xml.tar.bz2];

Вниз

Библиотека типов (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.004 c
15-1320351221
Leon-Z
2011-11-03 23:13
2012.02.26
Куда катится программирование ?


15-1320485519
RDen
2011-11-05 12:31
2012.02.26
Свернуть все окна в Win XP


2-1320945193
Кирил_Антонович
2011-11-10 21:13
2012.02.26
Небольшая сетевая БД


15-1320569353
alexdn
2011-11-06 11:49
2012.02.26
Битмап на 3d куб


2-1321607338
TeaNick
2011-11-18 13:08
2012.02.26
Проверка принадлежности перечислимому типу.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский