• deplhi (14.07.06 11:26) [0]
    задаю свойство в визарде библиотеки типов только для записи, на что он мне создает один единственный метод с приставкой set_, что впрочем логично. Меня интересует а само объявления поля самому нужно писать, если да, то где? Пробовал как в примерах, че то не срослось ((
    Благодарю за любую помощь
  • deplhi (14.07.06 12:43) [1]
    т.е. почему создаются методы например:
     IMyInter = interface(IUnknown)
       ['{FD17B030-0F94-4F4E-A8CF-1580FB27F436}']
       function Get_amount: LongWord; stdcall;
       procedure Set_amount(Value: LongWord); stdcall;
     end;



    а самого свойства типа
    property amount: LongWord read Get_amount write set_amount



    нету???
  • Ломброзо © (14.07.06 12:53) [2]
    у диспинтерфейса будут свойства
  • GanibalLector © (18.07.06 23:53) [3]
    Странно...у меня,например,есть :

     IMyTest = interface(IDispatch)
       ['{023E7E1A-9DE1-4BA2-8560-0A82DCF3FC7E}']
       function Exec: Integer; safecall;
       procedure Disconnect; safecall;
       procedure Set_Port(Value: Integer); safecall;
      property Port: Integer write Set_Port;
     end;



    Ты где смотришь??? Я в имя_TLB.pas
  • isasa © (19.07.06 12:10) [4]
    Tools -> Environment options -> Type Library -> Safe-Call function mapping

    GanibalLector ©   (18.07.06 23:53) [3]
    Only dual interfaces=ON

    deplhi   (14.07.06 12:43) [1]
    Do not map=ON

    :)
    Перед изменением, рекомендую сделать копию, а то суродует, не направишься потом.
  • isasa © (19.07.06 12:24) [5]
    deplhi   (14.07.06 12:43) [1]
    ?
    Все равно, где-то, что-то не то делаешь. Возвращаемое значение HResult, в любом случае, если stdcall.

     Interface1 = interface(IDispatch)
    ...
       function Get_Property1(out Value: Integer): HResult; stdcall;
       function Set_Property1(Value: Integer): HResult; stdcall;
     end;
Есть новые Нет новых   [134430   +2][b:0][p:0.001]