Процедура ReturnPosition (Comp)
Top  Previous  Next


Назначение  
Процедура передает системе значение текущей позиции.  
Для навигации в областях ввода, не связанных с базой данных, существует событийный способ навигации, который предполагает генерацию события главному окну интерфейса вместо прямой работы с логической либо физической таблицей.  
Событие cmGetAddr должно возвращать ядру системы число, являющееся позицией в списке. Возврат значения системе реализуется через процедуру ReturnPosition.  
Описание  
ReturnPosition(Position : Comp);  
Параметры  
Position : Comp - возвращаемая позиция.  
Замечание  
При наличии в окне/интерфейсе нескольких Browse/Screen/Tree NoTableNavigation переменная Target при приходе вышеуказанного события будет содержать значение для сравнения с именем броузера, по которому в данный момент осуществляется навигация.  
Пример  
interface NoTable DoAccept;  
const LENGTH=5;  
end;  
create view;  
var i : integer;  
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.