Код: Выделить всё
#include marker.vih
interface TEST_003;
  
  create view
    var
      i: integer;
      curOwner : comp;
      top      : comp;
      tmpnrec  : comp;
      pMarker  : IMarker(marker) new;
      mTreeID  : longInt;
  AS SELECT
    *
  FROM
    FPSTBUD, FPSTBUD FPSTBUD2
  WHERE
    ((
      curOwner == FPSTBUD.CNODE(noindex) AND FPSTBUD.NREC == FPSTBUD2.CNODE(noindex)
    ))
  ;
  screen scrTest;
    bounds (,,80,20);
    controls
    button bounds (2,2,20,4), name = btn1, cmYes, 'Дерево' ('Дерево', hcButton1, scButton1);
  end;
  window WWW
    show (2, 2, 110, 21)
    tree 0 treeTest1 (,, scAtlTreeMark);
      table FPSTBUD
      recMarker = pMarker {FPSTBUD.nrec};
      fields
        FPSTBUD.name  'name' : [15] ,Protect;
        FPSTBUD.nrec  'nrec' : [15] ,Protect;
        FPSTBUD.cnode 'cnode': [15] ,Protect;
    end;  // tree
      handleEvent
        cmInit: {
          //message('cmInit Windows');
          mTreeID := InitMarker('VTB', 8, 1000, 1000, false);
          message('mTreeID := ' + mTreeID);
        }
        cmDefault: {
          message('Следующей строкой будет вылет... :(');
          iMarker(pMarker).ExportTo(mTreeID); // здесь валится (((
        }
        cmDone:
        {
          message('cmDone Windows');
          DoneMarker (mTreeID, 'VTB');
        }
     end; // HandleEvent
     tableEvent table FPSTBUD
        cmTreeTop:  curOwner := top;           
        cmTreeDown: curOwner := FPSTBUD.NRec;
        cmTreeUp:   curOwner := FPSTBUD.cnode;
        //cmInsertRecord: insert current FPSTBUD;
        //cmUpdateRecord: update current FPSTBUD;
        //cmDeleteRecord: {
        //  if (Message('Удалить запись?',YesNo)=cmYes) delete current FPSTBUD;
        //}
     end;// tableEvent table FPSTBUD
  end; //window
handleEvent
  cmInit: {
    ReReadRecord(#FPSTBUD); //
  }
  cmYes: {
    RunWindow(WWW);
  }
end;  // handleEvent
end. Runtime error 216 (rtl: попытка обращения к некорректному дискриптору)
in streams_.dll at 00034200
и вылетает.
Вопрос: что я делаю не так?
Спасибо.