窗体FORM1里有EDIT1,EDIT2,BUTTON1,在EDIT1里面输入字符串#字符串#.....格式。点击button1,弹出计算公式生成FORM2,EDIT1里有几个字符串段在FORM2里就自动生成以这几个字符串为名的按钮,旁边还有+ - */()按钮,点击这些按钮和运算按钮,在FORM2的EDIT3里显示生成的公式,点击确定后所生成的公式自动添加到FORM1里的EDIT2里。
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1; s:array of string;implementationuses Unit2;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
str,tempstr:String;
ipos:integer;
Num:integer;
begin
str:=trim(edit1.Text);
if str= '' then exit;
ipos:=1;
Num:=1;
setlength(s,num);
while ipos>0 do
begin
ipos:=pos('#',str);
tempStr:=copy(str,0,ipos-1);
if (tempStr='') and (str <>'') then
tempstr:=str;
if ipos<>1 then
begin
s[num-1]:=tempstr;
setlength(s,num+1);
num:=num+1;
end;
str:=copy(str,ipos+1,length(str)-ipos);
end; form2.show;
end;end.
=============================================
unit Unit2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;type
TForm2 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Panel1: TPanel;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
procedure FormShow(Sender: TObject);
procedure btn_Click(Sender:Tobject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form2: TForm2;
btn:array of Tbutton;
implementation
uses unit1;
{$R *.dfm}procedure TForm2.btn_Click(Sender: Tobject);
begin
with sender as Tbutton do
begin
edit1.Text:=edit1.Text+Tbutton(Sender).Caption;
end;
end;procedure TForm2.FormShow(Sender: TObject);
var
i:integer;
count:integer;
top:integer;
begin
top:=0;
count := 1;
for i :=0 to high(s) do
begin
if s[i]<>'' then
begin
setlength(btn,Count); btn[Count-1]:=TButton.Create(self);
btn[count-1].parent:=self;
btn[Count-1].Caption :=s[i];
btn[count-1].Visible :=true;
btn[count-1].Width :=25;
btn[count-1].Height :=25;
btn[count-1].OnClick :=btn_click;
if count mod 2 = 1 then
begin
top:=top+26;
btn[count-1].Left := 30;
btn[count-1].Top :=top ;
end
else
begin
btn[count-1].Left := 60;
btn[count-1].Top :=top ;
end;
Count:=Count+1;
end;
end;
end;procedure TForm2.Button1Click(Sender: TObject);
begin
form1.Edit2.Text := edit1.Text;
close;
end;end.
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1; s:array of string;implementationuses Unit2;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
str,tempstr:String;
ipos:integer;
Num:integer;
begin
str:=trim(edit1.Text);
if str= '' then exit;
ipos:=1;
Num:=1;
setlength(s,num);
while ipos>0 do
begin
ipos:=pos('#',str);
tempStr:=copy(str,0,ipos-1);
if (tempStr='') and (str <>'') then
tempstr:=str;
if ipos<>1 then
begin
s[num-1]:=tempstr;
setlength(s,num+1);
num:=num+1;
end;
str:=copy(str,ipos+1,length(str)-ipos);
end; form2.show;
end;end.
=============================================
unit Unit2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;type
TForm2 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Panel1: TPanel;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
procedure FormShow(Sender: TObject);
procedure btn_Click(Sender:Tobject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form2: TForm2;
btn:array of Tbutton;
implementation
uses unit1;
{$R *.dfm}procedure TForm2.btn_Click(Sender: Tobject);
begin
with sender as Tbutton do
begin
edit1.Text:=edit1.Text+Tbutton(Sender).Caption;
end;
end;procedure TForm2.FormShow(Sender: TObject);
var
i:integer;
count:integer;
top:integer;
begin
top:=0;
count := 1;
for i :=0 to high(s) do
begin
if s[i]<>'' then
begin
setlength(btn,Count); btn[Count-1]:=TButton.Create(self);
btn[count-1].parent:=self;
btn[Count-1].Caption :=s[i];
btn[count-1].Visible :=true;
btn[count-1].Width :=25;
btn[count-1].Height :=25;
btn[count-1].OnClick :=btn_click;
if count mod 2 = 1 then
begin
top:=top+26;
btn[count-1].Left := 30;
btn[count-1].Top :=top ;
end
else
begin
btn[count-1].Left := 60;
btn[count-1].Top :=top ;
end;
Count:=Count+1;
end;
end;
end;procedure TForm2.Button1Click(Sender: TObject);
begin
form1.Edit2.Text := edit1.Text;
close;
end;end.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货