„^„„„Ђ „‡„Ђ„‚„Ђ„Љ„Ђ, „‰„„„Ђ „q„u„x „Ѓ„‚„Ђ„q„|„u„} 

„P„‚„y„r„Ђ„w„… „ѓ„r„Ђ„z „y„ѓ„‡„Ђ„t„~„y„{ - „t„|„‘ „r„Ђ„x„}„Ђ„w„~„Ќ„‡ „{„Ђ„}„}„u„~„„„p„‚„y„u„r. „N„p cmMarkUnMark „‘ „Ѓ„Ђ„r„u„ѓ„y„| „ѓ„Ђ„Ђ„q„‹„u„~„y„u „Ђ „{„Ђ„|„y„‰„u„ѓ„„„r„u „Џ„|„u„}„u„~„„„Ђ„r „r „}„p„‚„{„u„‚„u „t„|„‘ „Ѓ„‚„Ђ„r„u„‚„{„y.
////// „I„~„{„|„…„t „ѓ „{„Ђ„~„ѓ„„„p„~„„„p„}„y:
const
sci178InsPM = 6959;
cmMarkUnMark = 2243;
cmSelectAll = 2244;
cmUnSelectAll = 2245;
cmInvertAll = 2247;
End;
/////// „R„p„} „y„~„„„u„‚„†„u„z„ѓ:
Interface Dict '„S„p„q„|„y„€„Ќ „ѓ„y„ѓ„„„u„}„Ќ'
  (,,sci178InsPM) EscClose, Cyan;
  show at ( 3, 1, 76, 26);
table struct tmp_db
 (
	nrec : Comp,
	code : String,
	name : String,
	title: String
 )
with index 
 (
	tmp_db01 = nrec(unique,surrogate)
 );
  create view AllDictTables
  var
    Markers      : LongInt;
    FieldMarkers : LongInt;
    IndexNo      : LongInt;
  (MarkerStr)
  As Select
   if (SearchMarker(Markers, tmp_db.code, IndexNo) = True, 'Ѓг', ' '),
   * from tmp_db;
  Panel pnTablesList;
  Table tmp_db;
    Browse bwTableList;
      Fields
        MarkerStr    ''                 :[1], Skip;
        tmp_db.code  '„K„Ђ„t'              : Protect, {Font = {Color = if(MarkerStr = 'Ѓг', 2, 0)}};
        tmp_db.Name  '„I„}„‘ „„„p„q„|„y„€„Ќ'      : Protect, {Font = {Color = if(MarkerStr = 'Ѓг', 2, 0)}};
        tmp_db.Title '„H„p„s„|„p„r„y„u „„„p„q„|„y„€„Ќ' : Protect, {Font = {Color = if(MarkerStr = 'Ѓг', 2, 0)}};
    end;
    HandleEvent
      cmMarkUnMark : begin
                       InvertMarker(Markers, tmp_db.code);
                       if ((GetNext tmp_db) = tsOk) {};
                       RescanPanel(tntmp_db);
			Message (GetMarkerCount(Markers));
                     end;
      cmSelectAll  : begin
                       StartNewVisual( vtRotateVisual, vfTimer, '„P„Ђ„}„u„‰„p„ђ „r„ѓ„u', 1);
                       PushPos(tntmp_db);
                       if ((Modifier GetFirst tmp_db) = tsOk)
                       begin
                         do
                         begin
                           InsertMarker(Markers, tmp_db.code);
                           NextVisual;
                         end;
                         while (Modifier GetNext tmp_db = tsOk)
                       end;
                       PopPos(tntmp_db);
                       StopVisual('', 0);
                       RescanPanel(tntmp_db);
                     end;
      cmInvertAll  : begin
                       StartNewVisual( vtRotateVisual, vfTimer, '„I„~„r„u„‚„„„y„‚„…„ђ „ѓ„Ѓ„y„ѓ„Ђ„{', 1);
                       PushPos(tntmp_db);
                       if ((Modifier GetFirst tmp_db) = tsOk)
                       begin
                         do
                         begin
                           InvertMarker(Markers, tmp_db.code);
                           NextVisual;
                         end;
                         while (Modifier GetNext tmp_db = tsOk)
                       end;
                       PopPos(tntmp_db);
                       StopVisual( '', 0);
                       RescanPanel(tntmp_db);
                     end;
      cmUnSelectAll: begin
                       ClearMarker(Markers);
                       RescanPanel(tntmp_db);
                     end;
    end;
  end; // panel
  HandleEvent
    cmInit    : begin
                  Markers:=InitMarker('ViewDictMarkers', 2, 1000, 100);
                  FieldMarkers:=InitMarker('', 2, 20, 20);
        	StartNewVisual( vtRotateVisual, vfTimer, '„P„Ђ„t„s„Ђ„„„Ђ„r„{„p „ѓ„Ѓ„y„ѓ„{„p...', 1);
		_loop x$Files
		{
		tmp_db.code  := x$Files.xf$Code;
		tmp_db.name  := x$Files.xf$Name;
		tmp_db.title := x$Files.xf$Title;
		insert current tmp_db;
		}
		GetFirst tmp_db;
                StopVisual('', 0);
                end;
    cmDone    : begin
                  DoneMarker(Markers, 'ViewDictMarkers');
                  DoneMarker(FieldMarkers, '');
                end;
  end;
end.