
Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Курсовая работа2 / SLR_Grammar / Ufrm_Main
.pas // Авторы студенты группы 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.
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