📄 umain.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 + -