unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,DB,DBTables,OleCtnrs,Comobj,WordXP;  //添加5个东西type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Button0: TButton;
    Button16: TButton;
    Button12: TButton;
    Button13: TButton;
    Button14: TButton;
    Button15: TButton;
    button17: TButton;
    Button18: TButton;
    Memo1: TMemo;
    Button10: TButton;
    Button11: TButton;
    Button19: TButton;
    Button20: TButton;
    Button21: TButton;
    Button22: TButton;
    procedure FormShow(Sender: TObject);
    procedure Button18Click(Sender: TObject);
    procedure Button0Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button16Click(Sender: TObject);
    procedure Button15Click(Sender: TObject);
    procedure Button14Click(Sender: TObject);
    procedure Button13Click(Sender: TObject);
    procedure Button12Click(Sender: TObject);
    procedure Button21Click(Sender: TObject);
    procedure button17Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Button19Click(Sender: TObject);
    procedure Button20Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
  private
    { Private declarations }
  public    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button10Click(Sender: TObject);
begin
  if memo1.Text='' then
  memo1.Text:='.'
  else
  memo1.Text:=memo1.Text+'.';
end;procedure TForm1.Button11Click(Sender: TObject);
begin
  if memo1.Text='' then
  memo1.Text:='%'
  else
  memo1.Text:=memo1.Text+'%';
end;procedure TForm1.Button12Click(Sender: TObject);
begin
  if memo1.Text='' then
  memo1.Text:='+'
  else
  memo1.Text:=memo1.Text+'+';
end;procedure TForm1.Button13Click(Sender: TObject);
begin
  if memo1.Text='' then
  memo1.Text:='-'
  else
  memo1.Text:=memo1.Text+'-';
end;procedure TForm1.Button14Click(Sender: TObject);
begin
  if memo1.Text='' then
  memo1.Text:='*'
  else
  memo1.Text:=memo1.Text+'*';
end;procedure TForm1.Button15Click(Sender: TObject);
begin
  if memo1.Text='' then
  memo1.Text:='/'
  else
  memo1.Text:=memo1.Text+'/';
end;procedure TForm1.Button16Click(Sender: TObject);   // 等号代码
 const f = 'acos    = Math.acos;' +
       'asin    = Math.asin;' +
       'atan    = Math.atan;' +
       'atan2   = Math.atan2;' +
       'ceil    = Math.ceil;' +
       'cos     = Math.cos;' +
       'e       = Math.E;' +
       'exp     = Math.exp;' +
       'floor   = Math.floor;' +
       'ln10    = Math.LN10;' +
       'ln2     = Math.LN2;' +
       'log     = Math.log;' +
       'log10e  = Math.LOG10E;' +
       'log2e   = Math.LOG2E;' +
       'max     = Math.max;' +
       'min     = Math.min;' +
       'pi      = Math.PI;' +
       'pow     = Math.pow;' +
       'random  = Math.random;' +
       'round   = Math.round;' +
       'sin     = Math.sin;' +
       'sqrt    = Math.sqrt;' +
       'sqrt2   = Math.SQRT2;' +
       'tan     = Math.tan;';
var
s,ss:string;
x:double;
script:OleVariant;
begin               //??看不懂!!用java 做计算功能。
    s:=lowercase(trim(memo1.text));  //变成小写字母
      try        //调用JavaScript
         script:=CreateOleObject('ScriptControl');
         script.language:='JavaScript';
         script.ExecuteStatement(f+'str='+s);
         ss:=script.Eval('str');
      except
         ss:='Err'  ;
      end;
    edit1.Text:=ss;end;procedure TForm1.button17Click(Sender: TObject);
begin
    edit1.Text:='';
end;procedure TForm1.Button18Click(Sender: TObject);
begin
     memo1.Text:='';
     edit1.Text:='';end;
procedure TForm1.Button19Click(Sender: TObject);
begin
  if memo1.Text='' then
  memo1.Text:='('
  else
  memo1.Text:=memo1.Text+'(';
end;procedure TForm1.Button0Click(Sender: TObject);
begin
   if memo1.Text='' then
    memo1.Text:='0'
   else
    memo1.Text:=memo1.Text+'0';end;
procedure TForm1.Button1Click(Sender: TObject);
begin
   if memo1.Text='' then
    memo1.Text:='1'
   else
    memo1.Text:=memo1.Text+'1';end;procedure TForm1.Button20Click(Sender: TObject);
begin
  if memo1.Text='' then
  memo1.Text:=')'
  else
  memo1.Text:=memo1.Text+')';
end;procedure TForm1.Button21Click(Sender: TObject);
begin
  if memo1.Text='' then
  memo1.Text:='sqrt( )'
  else
  memo1.Text:=memo1.Text+'sqrt ( )';
  memo1.SelStart:=length(memo1.text)-1;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
   if memo1.Text='' then
    memo1.Text:='2'
   else
    memo1.Text:=memo1.Text+'2';
end;procedure TForm1.Button3Click(Sender: TObject);
begin
   if memo1.Text='' then
    memo1.Text:='3'
   else
    memo1.Text:=memo1.Text+'3';
end;procedure TForm1.Button4Click(Sender: TObject);
begin
   if memo1.Text='' then
    memo1.Text:='4'
   else
    memo1.Text:=memo1.Text+'4';
end;procedure TForm1.Button5Click(Sender: TObject);
begin
   if memo1.Text='' then
    memo1.Text:='5'
   else
    memo1.Text:=memo1.Text+'5';
end;procedure TForm1.Button6Click(Sender: TObject);
begin
   if memo1.Text='' then
    memo1.Text:='6'
   else
    memo1.Text:=memo1.Text+'6';
end;procedure TForm1.Button7Click(Sender: TObject);
begin
   if memo1.Text='' then
    memo1.Text:='7'
   else
    memo1.Text:=memo1.Text+'7';
end;procedure TForm1.Button8Click(Sender: TObject);
begin
   if memo1.Text='' then
    memo1.Text:='8'
   else
    memo1.Text:=memo1.Text+'8';
end;procedure TForm1.Button9Click(Sender: TObject);
begin
   if memo1.Text='' then
    memo1.Text:='9'
   else
    memo1.Text:=memo1.Text+'9';
end;procedure TForm1.FormShow(Sender: TObject);
begin
    memo1.Text:='';
    edit1.Text:='';
    
end;end.

解决方案 »

  1.   

    我想做开方的功能,但是光标一开始是没有的,我点了点光标(两个括号之间),再去按那个数字键,数字是直接加到后面去的,键盘打到是可以打进去的。怎么办呢?这个是%的功能完全是取余数。不是%原来的功能。这个要怎么改代码呢?
      

  2.   

    关于第一个问题,我想知道我怎么操作才可以让点击的那个值出现在我点光标的位置而不是接下去的位置?