⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 umain.pas

📁 本Delphi项目文件为本人在一个Pascal-s(子集)源代码基础上完成的。本人增加了类进行封装
💻 PAS
字号:
unit UMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, Buttons, uCSCompiler, ExtCtrls;

type
  TfrmMain = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    StatusBar1: TStatusBar;
    mmFSource: TMemo;
    TabSheet4: TTabSheet;
    TabSheet5: TTabSheet;
    mmFOut: TMemo;
    mmFResult: TMemo;
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    BitBtn1: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn2: TBitBtn;
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    Compiler : TCSCompiler;
  end;
  function myfac(n: integer): integer;

var
  frmMain: TfrmMain;

implementation



{$R *.dfm}

function myfac(n: integer): integer;
	//var
	 //  u: integer;
	begin
	   if n= 1 then
	   begin
	      myfac:=1;
	   end
	   else
	   begin
	      myfac := myfac(n-1)*n;
	   end;
	   //myfac :=u;
	end;

procedure TfrmMain.FormCreate(Sender: TObject);
begin

        Compiler := TCSCompiler.Create;//
        PageControl1.ActivePageIndex := 0;
end;

procedure TfrmMain.BitBtn1Click(Sender: TObject);
var
    OpenDialog : TOpenDialog;
begin
//showMessage(inttostr(ord('A')));
//showMessage(IntToStr(ord('a')));
    mmFSource.Lines.Clear;
    mmFResult.Lines.Clear;
    mmFOut.Lines.Clear;
    OpenDialog := TOpenDialog.Create(nil);
    OpenDialog.InitialDir := ExtractFilePath(Paramstr(0));
    OpenDialog.Filter :='Text files (*.txt)|*.TXT|Pascal files (*.pas)|*.PAS';
    OpenDialog.FilterIndex :=2;
    if OpenDialog.Execute then
    begin
        Compiler.SourceFileName := OpenDialog.FileName;
        mmFSource.Lines.LoadFromFile(OpenDialog.FileName);
    end;
    OpenDialog.Free;
end;

procedure TfrmMain.FormDestroy(Sender: TObject);
begin
    Compiler.Free;
end;

procedure TfrmMain.BitBtn2Click(Sender: TObject);
var
    Tick: Cardinal;
    strInfo : string;
begin
    Tick := GetTickCount;
    
    Compiler.Compile;
    strinfo := Format('Compile=%d;',[GetTickCount-Tick]);
    Tick := GetTickCount;

    Compiler.Run;
    strinfo := strInfo+ Format('Run=%d;',[GetTickCount-Tick]);
    Edit1.Text := strinfo;
    if Compiler.GetLastErrorString<>'' then
         ShowMessage(Compiler.GetLastErrorString)
    else
        ShowMessage('Sucessful');
         
    mmFOut.Lines.LoadFromFile(Compiler.outf);
    mmFResult.Lines.LoadFromFile(Compiler.fprr);

end;

procedure TfrmMain.BitBtn3Click(Sender: TObject);
var
    SaveDialog : TSaveDialog;
begin

    SaveDialog := TSaveDialog.Create(nil);
    SaveDialog.InitialDir := ExtractFilePath(Paramstr(0));
    SaveDialog.Filter :='Text files (*.txt)|*.TXT|Pascal files (*.pas)|*.PAS';
    SaveDialog.FilterIndex :=2;
    SaveDialog.DefaultExt :='.pas';
    if SaveDialog.Execute then
        mmFSource.Lines.SaveToFile(SaveDialog.FileName);

    SaveDialog.Free;

end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -