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

📄 dfuha.~pa

📁 编译原理-文法等价转换
💻 ~PA
字号:
unit Dfuha;

interface

uses WinTypes, WinProcs, Classes, Graphics, Forms, Controls, Buttons,sysutils,
  StdCtrls, ExtCtrls;



type
  Tfuhaod = class(TForm)
    OKBtn: TBitBtn;
    CancelBtn: TBitBtn;
    HelpBtn: TBitBtn;
    Bevel1: TBevel;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    procedure OKBtnClick(Sender: TObject);
    procedure FormActivate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  fuhaod: Tfuhaod;

implementation
 uses unit1;
{$R *.DFM}

procedure Tfuhaod.OKBtnClick(Sender: TObject);
var i,j:integer;
begin
  if (edit1.text='') or (edit2.text='')
    then begin
      Application.MessageBox('请填全信息!', '错误', mb_OK+MB_ICONSTOP);
      edit1.SetFocus;
      exit;
    end;

  try
    i:=strtoint(edit1.text);
  except
    on EConvertError  do
      begin
        Application.MessageBox('号码必须为数字!', '错误', mb_OK+MB_ICONSTOP);
        edit1.SetFocus;
        exit;
      end;
  end;
 j:=1;
 while  (j<=form1.fzjnum) and (form1.fzjfuhao[j].name<>edit2.text)  do
   begin
     j:=j+1;
   end;
 if j<=form1.fzjnum
   then
     begin
       Application.MessageBox('请不要与非终结符号重名!', '错误', mb_OK+MB_ICONSTOP);
       edit1.SetFocus;
       exit;
     end;
 while  (j<=form1.zjnum) and (form1.zjfuhao[j].index<>i) and (form1.zjfuhao[j].name<>edit2.text)  do
   begin
     j:=j+1;
   end;
 if j>form1.zjnum
   then begin
     ModalResult := mrOK;
   end else begin
     if  form1.zjfuhao[j].index=i
       then begin
          Application.MessageBox('号码重复!', '错误', mb_OK+MB_ICONSTOP);
          edit1.SetFocus;
       end else begin
          Application.MessageBox('终结符重复!', '错误', mb_OK+MB_ICONSTOP);
          edit1.SetFocus;
       end;
     exit;
   end;
end;

procedure Tfuhaod.FormActivate(Sender: TObject);
begin
  edit1.text:='';
  edit2.text:='';
  edit1.SetFocus;
end;

end.

⌨️ 快捷键说明

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