Процедура ReturnPosition |
Процедура передает системе значение текущей позиции.
Для навигации в областях ввода, не связанных с базой данных, существует событийный способ навигации, который предполагает генерацию события главному окну интерфейса вместо прямой работы с логической либо физической таблицей.
Событие cmGetAddr должно возвращать ядру системы число, являющееся позицией в списке. Возврат значения системе реализуется через процедуру ReturnPosition.
ReturnPosition(position : comp);
position : comp - возвращаемая позиция.
При наличии в окне или интерфейсе нескольких browse, screen или tree в режиме noTableNavigation переменная Target при приходе вышеуказанного события будет содержать значение для сравнения с именем броузера, по которому в данный момент осуществляется навигация.
interface noTable doAccept; const LENGTH=5; end; create view; var i : integer; var mas : array [1..1] of integer; browse depBrowse5 noTableNavigation; fields mas[i] 'Элемент массива' : protect; i 'Позиция'; end; handleEvent cmInit: { mas[1]:=20; mas[2]:=38; mas[3]:=12; mas[4]:=-12; mas[5]:=0; i:=1; } cmDoGetPrev : { if i<=1 then Abort; if i>1 then i:=i-1; } cmDoGetNext : { if i>=LENGTH then Abort; if i<LENGTH then i:=i+1; } cmDoGetLast : i:=LENGTH; cmDoGetFirst : i:=1; cmGetAddr : ReturnPosition(i); cmGetDirect : i:=SetPosition; cmDoFind : { var j : integer; var str : string; str := SearchValue; for(j:=1;j<=Length;j:=j+1) if SubStr(string(mas[j]),1,Length(str)) = str then { i:=j; RescanPanel(tnNoTable); Exit; } Abort; } //не нашли end; end.