Процедура
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.
|