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