📄 unit1.~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 + -