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

📄 unit1.~pas

📁 本程序能实现输入字符串类型而可以用数学公式计算出结果。
💻 ~PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,comobj, StdCtrls;//新加comobj

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
function calc(const expression:string):single;
var
  sc:OleVariant;
begin
 try//finally
  try //except
  sc:=CreateOleObject('MSScriptControl.ScriptControl.1');
  sc.language:='JavaScript';
  result:=Strtofloat(sc.eval(expression));
  except
    on E:Exception do
         Application.MessageBox(PChar(E.Message),'错误');
       else
       showmessage('未知错误');
  end;
 finally
   begin
   //showmessage('请重新输入'); //可以用,但不合适
   end;
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin

   try
   edit2.Text :=floattostr(calc(edit1.Text));
   edit1.SetFocus ;
   except
   showmessage('错误的输入字符串!');
   end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
    edit1.Text :='请在此输入计算公式';
    edit2.Text :='';
    edit1.TabOrder:=0;

end;


//按ENTER键始终不能将其EDIT1选中。而用BUTTON1 CLICK就行。
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (key=vk_return) then
   begin
      try
       edit2.Text :=floattostr(calc(edit1.Text));
       edit1.SetFocus ;
       form1.SelectFirst ;
       //showmessage('yun xing dao zhe le');
      finally
       //edit1.SetFocus ;
       form1.SelectFirst ;
      end;
   end;
end;

end.


⌨️ 快捷键说明

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