Скачиваний:
13
Добавлен:
01.05.2014
Размер:
3 Кб
Скачать
//  Авторы студенты группы 2382: Щербинская О. Ю., Мирошникова Н. Л.,  Костыгова Д. М.

unit Ufrm_Main;


{=}INTERFACE


uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Menus, StdCtrls, ComCtrls, Grids;


type  Tfrm_Main = class(TForm)

published
    //--------------------------------------------------------------------------
    dlg_Open: TOpenDialog;
    //--------------------------------------------------------------------------
    menu_Main: TMainMenu;
      menu_File: TMenuItem;
        menu_FileExit: TMenuItem;
        menu_FileLoad: TMenuItem;
        menu_FileAnalyze: TMenuItem;
      N2: TMenuItem;
    //--------------------------------------------------------------------------
    rich_Log: TRichEdit;
    //--------------------------------------------------------------------------
    procedure FormCreate(Sender: TObject);
    //--------------------------------------------------------------------------
    procedure menu_FileLoadClick(Sender: TObject);
    procedure menu_FileAnalyzeClick(Sender: TObject);
    procedure menu_FileExitClick(Sender: TObject);
    //--------------------------------------------------------------------------
    public
    //--------------------------------------------------------------------------
    function  GetTemplatePath: string;
    procedure Log(Msg: string; Col: TColor );
    //--------------------------------------------------------------------------
end;


var frm_Main: Tfrm_Main;


{=}IMPLEMENTATION


uses Udm_Grammar,Udm_Vpod,Udm_Goto,Udm_First,Udm_Follow,Udm_Action,Umsc_GenCode;


{$R *.dfm}

//    ИНТЕРФЕЙС
//    путь к шаблонам xml-документов
function  Tfrm_Main.GetTemplatePath: string;
begin
   Result := ExtractFileDir(Application.ExeName) + '\Templates';
end;


//    Вывод сообщений
procedure Tfrm_Main.Log(Msg: string; Col: TColor );
var Start: integer;
begin
   Start := Length(rich_Log.Lines.Text);
   rich_Log.Lines.Add( Msg );

   rich_Log.SelStart := Start;
   rich_Log.SelLength := Length( Msg );

   rich_Log.SelAttributes.Color := Col;

end;

  //    ГЛАВНОЕ МЕНЮ
procedure Tfrm_Main.menu_FileLoadClick(Sender: TObject);
begin
   if (dlg_Open.Execute) then
   begin
      dm_Grammar.LoadGrammar( dlg_Open.FileName );
      menu_FileLoad.Enabled    := FALSE;
      menu_FileAnalyze.Enabled := TRUE;

     end;
end;


procedure Tfrm_Main.menu_FileAnalyzeClick(Sender: TObject);
begin
   dm_Vpod.BuildVpodRelation;
   dm_Goto.BuildGotoFunction;
   dm_First.BuildFirstRelation;
   dm_Follow.BuildFollowRelation;
   dm_Action.BuildActionFunction;

   Umsc_GenCode.GenCode;

    menu_FileLoad.Enabled    := TRUE;
    menu_FileAnalyze.Enabled := FALSE;

end;

procedure Tfrm_Main.menu_FileExitClick(Sender: TObject);
begin
   Self.Close;
end;


//    ГЛАВНАЯ ФОРМА
procedure Tfrm_Main.FormCreate(Sender: TObject);
begin
   Self.Log( '      Программа готова к работе...', clGreen );
   Self.Log( ' ', clGreen );
end;

end.
Соседние файлы в папке SLR_Grammar