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

Вниз

Значение параметра по умолчанию для интерфейсного метода.   Найти похожие ветки 

 
harisma ©   (2009-03-16 19:51) [0]

Господа знатоки Дельфи.

Кто глубоко знаком с интерфейсами?

Есть некий интерфейс (не важно какой именно). У него объявлен набор методов.
Мне необходимо добавить еще несколько методов, у которых один или несколько параметров были бы опциональными и имели значения предустановленные по умолчанию.
Так вот проблема: в Дельфе (я работаю в Дельфи 5) сколько бы я ни устанавливал в TypeLibrary для этих параметров галочку Optional и указывал бы нужное мне значение по умолчанию, в *_TLB.pas файле это значение все равно не прописывается. Почему?

Конечно можно было бы ручками в готовом *_TLB.pas файле дописать это, но при дальнейших изменениях данного интерфейса это пропадет и придется дописывать снова. А это плохо, потому как таких мест может быть много и все их не запомнишь.

Кто знает, как выйти из такой ситуации???


 
Palladin ©   (2009-03-16 19:56) [1]

Приведи четко как это происходит, по шагам. А то подозрение, что это именно д5 трабла. Попробую на д6 :)


 
Palladin ©   (2009-03-16 19:57) [2]

А вообще я предпочитаю работать через OleVariant и не связываться с жесткой ранней половой связью :)


 
harisma ©   (2009-03-16 20:17) [3]

2 Palladin:
1. считаем, что у тебя уже есть проект, в котором используется *_TLB.pas.
2. Запускаешь View->TypeLibrary
3. Выбираешь свой интерфейс.
4. Выбираешь любой его метод
5. Добавляешь еще один параметр, указываешь его тип, скажем VARIANT_BOOL, и щелкаешь в колонке "Modifier" на кнопке "..." - откроется окно "Parameter flags"
6.  В этом окне отмечаешь галочками пункты "In", "Optional" и "Has default Value"
7. В поле "Default Value" пишешь True.
8. Жмешь на кнопочке "ОК"
9. Жмешь на кнопочке "Refresh Implementation" (третья справа в тулбаре вверху)
10. Смотришь в *_TLB.pas файле - параметр у метода появится, а вот значение по умолчанию - нет :(


 
Palladin ©   (2009-03-16 20:19) [4]

на втором пункте завал :) нет у меня во view TypeLibrary


 
harisma ©   (2009-03-16 20:23) [5]

У тебя какая Дельфа? У меня 5. А у тебя если 6, то там где-то обязательно должен быть такой пункт, иначе как определять интерфейсы - посмотри доку, где там этот пункт Борландисты переместили.



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

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

Наверх




Память: 0.48 MB
Время: 0.009 c
2-1260432658
TAzimut
2009-12-10 11:10
2010.02.07
Как перехватить событие максимизации формы?


2-1260371250
Aleks1985
2009-12-09 18:07
2010.02.07
Нужен компонент для парсинга строк


15-1259774632
Наиль
2009-12-02 20:23
2010.02.07
Опять про Марка Руссиновича


3-1234422961
dolmat
2009-02-12 10:16
2010.02.07
как создать триггер


15-1259746350
Хитрий Лис
2009-12-02 12:32
2010.02.07
Какие у кого мысли о книжке Американское сало ?