Конференция "Основная" » Значение параметра по умолчанию для интерфейсного метода. [D5, WinXP]
 
  • harisma © (16.03.09 19:51) [0]
    Господа знатоки Дельфи.

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

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

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

    Кто знает, как выйти из такой ситуации???
  • Palladin © (16.03.09 19:56) [1]
    Приведи четко как это происходит, по шагам. А то подозрение, что это именно д5 трабла. Попробую на д6 :)
  • Palladin © (16.03.09 19:57) [2]
    А вообще я предпочитаю работать через OleVariant и не связываться с жесткой ранней половой связью :)
  • harisma © (16.03.09 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 © (16.03.09 20:19) [4]
    на втором пункте завал :) нет у меня во view TypeLibrary
  • harisma © (16.03.09 20:23) [5]
    У тебя какая Дельфа? У меня 5. А у тебя если 6, то там где-то обязательно должен быть такой пункт, иначе как определять интерфейсы - посмотри доку, где там этот пункт Борландисты переместили.
 
Конференция "Основная" » Значение параметра по умолчанию для интерфейсного метода. [D5, WinXP]
Есть новые Нет новых   [118456   +60][b:0][p:0]