                              { Extens.SRC }
{ ///////////////////////////////////////////////////////////////////// }
{     Полезные Дополнения к стандартному набору макросов Multi-Edit     }
{   26-Jul-90 :    Константин Исаков  MK.soft (C)1990.    : 24-Aug-90   }
{ ///////////////////////////////////////////////////////////////////// }

$MACRO_FILE Extens;

{ ///////////////////////////////////////////////////////////////////// }

$MACRO MK_Menu DUMP;

{     Здесь будет корневое меню для доступа к Полезным Дополнениям,     }
{  не имеющим короткого пути на клавиатуре                              }

  Run_Macro ('UserIn^QueryBox /L=4 /C=6 /T= ' +
  'Полезные_Дополнения к Multi-Edit 4.00a /P= ' +
  '   (C)MK.soft 1990  Потом здесь будет большое интересное меню   ');
END_MACRO;

{ ///////////////////////////////////////////////////////////////////// }

$MACRO DelMsg TRANS;             { Удалить с экрана последнее сообщение }
  Make_Message ('');
END_MACRO;

{ ///////////////////////////////////////////////////////////////////// }

$MACRO DosScrn TRANS;              { Заглянуть в оригинальный экран DOS }
  DEF_INT (mc ,tc ,fc);
  mc := Mem_Col; tc := Time_Col; fc := Fkey_Row;
  Mem_Col := 0;  Time_Col := 0;  Fkey_Row := 0;
  Rest_Dos_Screen;
  Read_Key;
  Mem_Col := mc;  Time_Col := tc; Fkey_Row := fc;
  New_Screen;
END_MACRO;

{ ///////////////////////////////////////////////////////////////////// }

{   Макрокоманда EuroDate возвращает текущую дату в более привычном для }
{ нас формате: число-месяц-год, напр. 08-Mar-90. Результат возвращается }
{ в строковой переменной Return_Str.                                    }
{        Run_Macro ('Extens^EuroDate');  Text (Return_Str);             }

$MACRO EuroDate DUMP;
  DEF_INT (Mounth);
  IF VAL (Mounth ,Copy(DATE ,1,2)) THEN {Контроль ошибки} END;
  IF Mounth = 1  THEN Return_Str := '-Jan-'; END;   { Янв   Jan }
  IF Mounth = 2  THEN Return_Str := '-Feb-'; END;   { Фев   Feb }
  IF Mounth = 3  THEN Return_Str := '-Mar-'; END;   { Мар   Mar }
  IF Mounth = 4  THEN Return_Str := '-Apr-'; END;   { Апр   Apr }
  IF Mounth = 5  THEN Return_Str := '-May-'; END;   { Май   May }
  IF Mounth = 6  THEN Return_Str := '-Jun-'; END;   { Июн   Jun }
  IF Mounth = 7  THEN Return_Str := '-Jul-'; END;   { Июл   Jul }
  IF Mounth = 8  THEN Return_Str := '-Aug-'; END;   { Авг   Aug }
  IF Mounth = 9  THEN Return_Str := '-Sep-'; END;   { Сен   Sep }
  IF Mounth = 10 THEN Return_Str := '-Oct-'; END;   { Окт   Oct }
  IF Mounth = 11 THEN Return_Str := '-Nov-'; END;   { Ноя   Nov }
  IF Mounth = 12 THEN Return_Str := '-Dec-'; END;   { Дек   Dec }
  Return_Str := Str_Ins(Copy(DATE,4,2),Return_Str,1) + Copy(DATE,7,2);
END_MACRO;

{ ///////////////////////////////////////////////////////////////////// }

{    Возвращает в Return_Str системное время в 24-х часовом формате     }
{     16:25:58     Run_Macro ('Extens^Time24'); Text (Return_Str);      }

$MACRO Time24 DUMP;
  DEF_INT (hour);
  DEF_STR (ti[12]);
  ti := TIME;
  IF VAL(hour ,Copy (ti ,1 ,2)) THEN {Ошибка} END;
  hour := hour + ((Pos ('pm' ,ti) <> 0) * 12);
  Return_Str := STR (hour);
  IF Length (Return_Str) = 1 THEN
    Return_Str := Str_Ins ('0' ,Return_Str ,1);
  END;
  Return_Str := Return_Str + Copy (ti ,3 ,6);
END_MACRO;

{ ///////////////////////////////////////////////////////////////////// }

{  Макрокоманда DateTime предназначена для подмены стандартной функции  }
{  <Shift-F2>; возвращает дату / время в другом формате.                }

$MACRO DateTime DUMP;
  Run_Macro ('Extens^EuroDate'); Text (Return_Str);
  Run_Macro ('Extens^Time24');   Text ('  ' + Return_Str);
END_MACRO;

{ ///////////////////////////////////////////////////////////////////// }

$MACRO CodeIns TRANS;                { Вставить в текст управляющий код }
  Make_Message ('^P ');
  Read_Key;
  IF Key1 <> 0 THEN
    Text (CHAR(Key1));
    Make_Message ('');
  ELSE
    Make_Message ('Расширенный код вставить в текст сложно');
  END;
END_MACRO;

{ ///////////////////////////////////////////////////////////////////// }
{                      Конец файла "Extens.SRC"                         }
{ ///////////////////////////////////////////////////////////////////// }
