использование RSMailServer.RSMRSLProps для настройки параметров узлов

0 (0)
  • Развернуть использование RSMailServer.RSMRSLProps для настройки параметров узлов ( AStrejenov  03.10.2008 11:15 )
    5(1)
    программа написанная на Delphi и подключается к Rs-mail через ActiveX.
    хотелось бы програмно настроить параметры SMTP/POP3 узлов Rs-mail но возникает ошибка.
    Rs-mail 410
    кусок кода
    Rsmob := CreateOleObject('RSMailServer.RSMailConnect');
    sess := CreateOLEObject('RSMailServer.RSMRSLSession');
    chan := CreateOLEObject('RSMailServer.RSMRSLChannel');
    Node := CreateOLEObject('RSMailServer.RSMRSLNode');
    Prop := CreateOLEObject('RSMailServer.RSMRSLProps');
    sess.connect(rsmob);
    rsmaddress:= rsmob.EnumAddress(0);
    Sess.Open( rsmaddress, true, true) ;
    node.Connect(Sess);
    node.GetByAddress( rsmaddress);
    if ( node.IsExtraPropsEnable) then
    Prop.Connect( node);
    ndx:=0;
    cnt := prop.PropsCount; // значение равно 3
    idx:=0;
    cnti:= prop.PropItemsCount(0); // возникает ошибка член группы не найден

    >> Ответить
    • Развернуть Давненько не брал я в руки шашек... ( Иванов Александр  03.10.2008 11:39 )
      5(1)
      Собственно так сразу мысли возникает две и обе вытекают из полного отсутствия знаний Делфи и отвращения к поделиям Никлауса Вирта...

      Во-первых там путаница с прописными и строчными буквами(Prop и prop). Возможно, что это не важно, но тем не менее...

      Во-вторых, похоже, что Дельфи из-за наличия параметра считает PropItemsCount методом и прямо так пытается вызвать, тогда как на самом деле это свойство с параметром и на самом деле нада вызывать get_PropItemsCount(0). Во всяком случае это следует из ошибки. Само свойство либо вернет NOT_SUPPORTED, либо значение, третьего не дано... Для проверки попробуйте написать
      cnt := prop.PropsCount();
      .

      >> Ответить
      • Развернуть так вот... ( AStrejenov  03.10.2008 12:25 )
        5(1)
        прописнык здесь непричем.
        При вызове
        cnt := prop.PropsCount;
        ошибок невозникает возвращет значение 3
        при вызове get_PropItemsCount(0). свойство вернуло NOT_SUPPORTED
        при пустом параметром возникает ошибка "Член группы ненайден"
        и таже ошибка возникает и в использовании PropItemName, PropItemValue

        >> Ответить
        • Развернуть Я писал, что стоит попробовать вызвать PropsCount()... ( Иванов Александр  03.10.2008 12:55 )
          5(1)
          Дабы убедиться, что как это ни прискорбно, именно наличие списка параметров для Дельфи является критерием отличия методов от свойств. Впрочем счас уже не важно, поскольку вызов get_PropItemsCount(0) демонстрирует, что это именно так. В такой нотации вызов произошел нормально и вернул понятный и допустимый код. Полагаю, что в версии 4.10 это свойство действительно еще не поддерживалось, в текущей версии (в код которой я гляжу) оно вполне себе реализовано.

          >> Ответить
          • Развернуть Спасибо ( AStrejenov  03.10.2008 13:28 )
            5(1)
            Вы все правильно опредили, так как это свойство необходимо было написать
            PropItemsCount[0] так все заработало
            >> Ответить