Скачиваний:
13
Добавлен:
01.05.2014
Размер:
3.07 Кб
Скачать
// Авторы студенты группы 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