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

📄 fcompiler.pas

📁 Delphi编写的一个支持语法高亮显示和很多语言的文本编辑器
💻 PAS
字号:
unit fCompiler;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, ComCtrls, inifiles, ImgList, Buttons, strUtils,
  CorelButton;

type
  TfrmCompiler = class(TForm)
    lstMain: TListView;
    imgEXE: TImage;
    imgMain: TImageList;
    cmdNew: TCorelButton;
    cmdEdit: TCorelButton;
    cmdDelete: TCorelButton;
    cmdClose: TCorelButton;
    procedure cmdNewClick(Sender: TObject);
    procedure cmdEditClick(Sender: TObject);
    procedure cmdDeleteClick(Sender: TObject);
    procedure ListLangs();
    procedure FormCreate(Sender: TObject);
    procedure cmdCloseClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmCompiler: TfrmCompiler;

implementation

uses fSettings;

{$R *.dfm}

procedure TfrmCompiler.ListLangs();
var
  ini: TIniFile;
  rec: TSearchRec;
begin
  lstMain.Items.Clear;
  if findFirst(ExtractFilePath(Application.ExeName) + 'compile\' + '*.cmp', faAnyFile, Rec) = 0 then begin
    ini := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'compile\' + rec.Name);
    with lstMain.Items.Add do begin;
      Caption :=  rec.Name;
      Subitems.Add(ini.ReadString('Compile', 'Extension', ''));
      Subitems.Add(ini.ReadString('Compile', 'Language', ''));
      Subitems.Add(ini.ReadString('Compile', 'Compile', ''));
      Subitems.Add(ini.ReadString('Compile', 'Variables', ''));
      Subitems.Add(ini.ReadString('Compile', 'InputForOutput', ''));
    end;
    ini.Destroy;
    While FindNext(rec) = 0 do
    begin
      ini := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'compile\' + rec.Name);
      with lstMain.Items.Add do begin;
        Caption :=  rec.Name;
      Subitems.Add(ini.ReadString('Compile', 'Extension', ''));
      Subitems.Add(ini.ReadString('Compile', 'Language', ''));
      Subitems.Add(ini.ReadString('Compile', 'Compile', ''));
      Subitems.Add(ini.ReadString('Compile', 'Variables', ''));
      Subitems.Add(ini.ReadString('Compile', 'InputForOutput', ''));
      end;
      ini.Destroy;
    end;
  end;
end;

procedure TfrmCompiler.cmdNewClick(Sender: TObject);
var
  frmSettings: TfrmSettings;
begin
  frmSettings := TfrmSettings.Create(self);
  frmSettings.ShowModal;
end;

procedure TfrmCompiler.cmdEditClick(Sender: TObject);
var
  ini: TIniFile;
  frmSettings: TfrmSettings;
  tmpStr: String;
  i: Integer;
begin
  if lstMain.Selected = nil then exit;
  ini := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'compile\' + lstMain.Selected.Caption);
  frmSettings := TfrmSettings.Create(self);
  frmSettings.edtFilename.Text := LeftStr(lstmain.Selected.Caption, Length(lstMain.Selected.Caption)-4);
  frmSettings.edtExt.text := ini.ReadString('Compile', 'Extension', '');
  frmSettings.edtComp.Text := ini.ReadString('Compile', 'Compile', '');
  frmSettings.edtOpt.text := ini.ReadString('Compile', 'Variables', '');
  tmpStr:=ini.ReadString('Compile', 'Language', '');
  for i:= 0 to frmSettings.cmbLang.Items.Count - 1 do begin
    if frmSettings.cmbLang.Items[i] = tmpStr then break;
  end;
  frmSettings.cmbLang.ItemIndex := i;
  tmpStr := ini.ReadString('Compile', 'InputForOutput', 'off');
  if tmpStr = 'on' then
    frmSettings.rdEOn.Checked := true
  else
    frmSettings.rdEOn.Checked := False;
  tmpStr := ini.ReadString('Compile', 'RunWhenComplete', 'off');
  if tmpStr = 'on' then
    frmSettings.rdROn.Checked := true
  else
    frmSettings.rdROn.Checked := False;
  tmpStr := ini.ReadString('Compile', 'CaptureOutput', 'off');
  if tmpStr = 'on' then
    frmSettings.rdCOn.Checked := true
  else
    frmSettings.rdCOn.Checked := False;
  ini.Destroy;
  frmSettings.ShowModal;
end;

procedure TfrmCompiler.cmdDeleteClick(Sender: TObject);
begin
  DeleteFile(ExtractFilePath(Application.ExeName) + 'compile\' + lstMain.Selected.Caption);
  ListLangs;
end;

procedure TfrmCompiler.FormCreate(Sender: TObject);
begin
  ListLangs;
end;

procedure TfrmCompiler.cmdCloseClick(Sender: TObject);
begin
  Close;
end;

end.

⌨️ 快捷键说明

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