Пример интерфейса с маркерами Назад В начало Вперед
interface Dict 'Таблицы системы'
  (,hcDictInterface,scExtFiles) EscClose, Cyan;
  show at ( 3, 1, 76, 26);

  create view AllDictTables
  var
	Markers	: longInt;
	FieldMarkers : longInt;
	IndexNo	: longInt;

  (MarkerStr)

  as select
   if (SearchMarker(Markers, x$Files.xf$Code, IndexNo) = True, 'v', ' '),

   * from x$Files;

  panel pnTablesList;
  table x$Files;
	browse bwTableList;
	fields
		MarkerStr		''				 :[1], Skip;
		x$Files.xf$Code  'Код'			: Protect;
		x$Files.xf$Name  'Имя таблицы'	: Protect;
		x$Files.xf$Title 'Заглавие таблицы' : Protect;
	end;

	handleEvent
	cmMarkRec: {
		InvertMarker(Markers, x$Files.xf$Code);
		if ((GetNext x$Files) = tsOk) {};
		RescanPanel(tnx$Files);
}
	cmMarkAll: {
		StartNewVisual( vtRotateVisual, vfTimer, 'Помечаю все', 1);
		PushPos(tnx$Files);
		if ((Modifier GetFirst x$Files) = tsOk)
		begin
		do
		begin
			InsertMarker(Markers, x$Files.xf$Code);
			NextVisual;
		end;
		while (Modifier GetNext x$Files = tsOk)
		end;
		PopPos(tnx$Files);
		StopVisual('', 0);
		RescanPanel(tnx$Files);
}
	cmInvertMark: {
		StartNewVisual( vtRotateVisual, vfTimer, 'Инвертирую список', 1);
		PushPos(tnx$Files);
		if ((Modifier GetFirst x$Files) = tsOk)
		begin
		do
		begin
			InvertMarker(Markers, x$Files.xf$Code);
			NextVisual;
		end;
		while (Modifier GetNext x$Files = tsOk)
		end;
		PopPos(tnx$Files);
		StopVisual( '', 0);
		RescanPanel(tnx$Files);
}
	cmUnMarkAll: {
		ClearMarker(Markers);
		RescanPanel(tnx$Files);
}
	end;
  end; // panel

  handleEvent
	cmInit: {
	Markers := InitMarker('ViewDictMarkers', 2, 1000, 100);
	FieldMarkers := InitMarker('', 2, 20, 20);
}
	cmDone: {
	DoneMarker(Markers, 'ViewDictMarkers');
	DoneMarker(FieldMarkers, '');
}
  end;
end.