求一段简单的Delphi 代码 (如何重复执行button)

作者&投稿:郜君 (若有异议请与网页底部的电邮联系)
delphi 7运行按钮怎么是暗的呢~

这种有多个原因的,主要有:
1,程序已经在点过运行按钮,在编译状态了,运行键是灰色的。
2,程序运行后,出现了运行期语法或内存错误,即使程序复位后,运行键也是灰色的,只能保存文件重新启动Delphi调试。

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Button10: TButton;
Button11: TButton;
Button12: TButton;
Button13: TButton;
Button14: TButton;
Button15: TButton;
Button16: TButton;
Button17: TButton;
BitBtn1: TBitBtn;
Edit1: TEdit;
procedure Button13Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button17Click(Sender: TObject);
private
procedure setedit(n :string);
{ Private declarations }
public
{ Public declarations }
end;
type
Tcalc=Object
private
value1: Double;
value2: Double;
sign: Char;
public
function Add(x,y: Double): Double;
function Sub(x,y: Double): Double;
function Mul(x,y: Double): Double;
function divi(x,y: Double): Double;
end;

var
Form1: TForm1;
calc: Tcalc;
stort: string;

implementation

{$R *.dfm}

{ Tcalc }

function Tcalc.Add(x, y: Double): Double;
begin
Result:=x+y;
end;

function Tcalc.divi(x, y: Double): Double;
begin
if y=0 then
begin
ShowMessage('除数不能为0');
exit;
end
else
Result:=x/y;
end;

function Tcalc.Mul(x, y: Double): Double;
begin
Result:=x*y;
end;

function Tcalc.Sub(x, y: Double): Double;
begin
Result:=x-y;
end;

{ TForm1 }

procedure TForm1.setedit(n: string);
begin
edit1.Text:=stort+n;
stort:=edit1.Text;
calc.value1:=StrToFloat(edit1.Text);
end;

procedure TForm1.Button13Click(Sender: TObject);
begin
setedit('1');
end;

procedure TForm1.Button11Click(Sender: TObject);
begin
setedit('2');
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
setedit('3');
end;

procedure TForm1.Button14Click(Sender: TObject);
begin
setedit('4');
end;

procedure TForm1.Button10Click(Sender: TObject);
begin
setedit('5');
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
setedit('6');
end;

procedure TForm1.Button12Click(Sender: TObject);
begin
setedit('7');
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
setedit('8');
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
setedit('9');
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
setedit('0');
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
setedit('.');
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Button16Click(nil);
calc.value2:=calc.value1;
calc.sign:='+';
stort:='';
end;

procedure TForm1.Button16Click(Sender: TObject);
begin
if calc.sign' ' then
stort:='';
if calc.sign='+' then
setedit(FloatToStr(calc.Add(calc.value2,calc.value1)));
if calc.sign='-' then
setedit(FloatToStr(calc.Sub(calc.value2,calc.value1)));
if calc.sign='*' then
setedit(FloatToStr(calc.Mul(calc.value2,calc.value1)));
if calc.sign='/' then
setedit(FloatToStr(calc.divi(calc.value2,calc.value1)));
calc.sign:=' ';
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
calc.sign:=' ';
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
calc.sign:=' ';
stort:='';
edit1.Text:='';
end;

procedure TForm1.Button15Click(Sender: TObject);
begin
Button16Click(nil);
calc.value2:=calc.value1;
calc.sign:='-';
stort:='';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Button16Click(nil);
calc.value2:=calc.value1;
calc.sign:='*';
stort:='';
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Button16Click(nil);
calc.value2:=calc.value1;
calc.sign:='/';
stort:='';
end;

procedure TForm1.Button17Click(Sender: TObject);
begin
Edit1.Text:=copy(edit1.Text,1,length(edit1.Text)-1);
stort:='';
setedit(edit1.Text);
end;

end.

添加一个timer组件,并设备相关属性,把你要执行的代码写到这个timer里,button1按下去后timer.enabled:=true;
button按下去后timer.enabled:=false;
要控制重复执行的速度,只需要设置timer的Interval属性即可,Interval值越小,重复越快,Interval越大,重复越慢

var
stop:boolean;

procedure someProcudure;
begin
..
end;

buttonClick();
begin
stop:=true;
end;

button1Click();
begin
stop:=false;

while not stop do
begin
someProcudure;
application.ProcessMessages;
end;
end;

begin
if button1.Caption='暂停读取' then
begin
timer1.Enabled:=false;
button1.Caption:='开始读取';
end
else
begin
button1.Caption:='暂停读取';
timer1.Enabled:=true;
end;
end;

button1click(sender);

keyiwenwo 正解


血脂异常新疗法, DELP新型体外血脂分离技术
DELP技术的独特之处在于它结合了过滤和吸附功能,使用美国3M公司的Delipid Plus特种深层过滤膜板等多层结构,能够高效清除血液中的低密度脂蛋白等心血管疾病危险因子。不同于传统的饮食和药物疗法,DELP特别针对药物不敏感或因不良反应无法继续治疗的患者,以及急性缺血性血管疾病中脂质代谢紊乱的患者,提供了...

我的世界OP清空别人背包的指令
\/mangdelp 组 essentials.权限 删除某组的某权限 \/manuaddv [ID] prefix 你要的称号 给某人增加称号 \/mangaddv 组 prefix 值 给组添加称号 \/mangaddi 组1 组2 让组1担当租2的权限,能够为权限设置剩下不少费事 \/manuadd 用户 组 将用户添加到组 \/manuaddp 用户 权限 给用户权限 \/manudelp 用户 权限 删除...

jsp页面嵌入java代码怎么写(jsp页面中java代码无效)
jsp页面中javascript嵌套java代码段关键是%pdao.delpinfo(sfzh);%这里。这句在页面加载成功就已经执行了,不受js代码段控制的。(java代码优先执行,并且输出动态内容,生成静态页面后,js才开始执行)如果要让js控制操作逻辑,去判断是否发送新的请求,可以用ajax、或用js去操作一个form提交,或者用js去...

我的世界的全部指令
详情请查看视频回答

图书管里经常放的纯音乐有哪些
1、《献给爱丽丝》《献给爱丽丝》是一首贝多芬创作的钢琴独奏曲。在本曲的原稿上,有作者的手迹:“为爱丽丝而作,1810年四月二十七日,贝多芬”。“爱丽丝”是谁?已无从考证。因为这一作品的原稿问世之时,作者已经去世整整四十年了。此曲是一首极为普通的钢琴独奏小曲,但旋律非常优美动听,节奏轻快...

跑步大腿会变粗吗?
可以 减肥这个事儿,说复杂很复杂,牵扯到代谢的方方面面,说简单又很简单,就是一个能量平衡问题只要摄入的能量少于支出的能量,一定可以瘦下来。跑步可以增加能量支出,自然可以减肥。不过在减肥这件事上,运动的贡献比调整饮食少。2012年的一项研究指出,普通人的新陈代谢存在一个极限,换句话说,能量...

DAC0832的输出形式
执行下面的程序段,利用D\/A转换器产生一个锯齿波电压,实现此类控制作用。MOV DX,PORTA ;PORTA为D\/A转换器端口地址MOV AL,OFFH ;置初值ROTAT:INC ALOUT DX,AL ;往D\/A转换器输出资料CALL DELP ;调用延迟子程序JMP ROTATDELY: MOV CX, DATA ;置延迟常数DATADELY1: LOOP DELY1RET如果需要一个负向的锯齿波...

我的世界OP清空别人背包的指令是什么?
\/manudelp 用户 权限 删除用户权限 \/manudel 用户 把人移出权限组 \/mangdel 组 删除权限组 默认权限组名字:default \/skull [ID] 获得玩家的头 \/god [ID] 上帝模式 \/enchant [附魔ID] [等级] 给手上的装备或者工具附魔 等级:1~32767 附魔ID: 0~7(装备) 16~21(武器) 32~35(工具) 48~51(弓) 136(...

跑步可以让小腿内侧变粗吗
可以 减肥这个事儿,说复杂很复杂,牵扯到代谢的方方面面,说简单又很简单,就是一个能量平衡问题只要摄入的能量少于支出的能量,一定可以瘦下来。跑步可以增加能量支出,自然可以减肥。不过在减肥这件事上,运动的贡献比调整饮食少。2012年的一项研究指出,普通人的新陈代谢存在一个极限,换句话说,能量...

泽普县15945874174: 求一个delphi简单代码!
敞婕铁泰: 这么简单的功能也要用一个Timer控件实在有点烂用控件了.给你写了个简单的函数调用就行了: procedure Delay(d:Cardinal);//d为毫秒(1000毫秒=1秒) var a:Cardinal; begin a:=GetTickcount; while true do begin application.ProcessMessages; if GetTickCount-a>=d then Break; end; end; 在你控扭调用: Delay(10000);//延时10秒 self.Color:=clBlue;//窗体变蓝

泽普县15945874174: 求段delphi基本的代码
敞婕铁泰: 这个已经最简单了,可以对一个表进行查询浏览,删除,插入记录等操作,,,

泽普县15945874174: 求一段完整的Delphi源码,尽可能简单的,在下是菜鸟,想运行下程序认识Delphi. -
敞婕铁泰: 你用别人的代码,不如自己做一个,直接打开delphi,系统会自己建一个工程,直接点运行就可以运行了.也可以自己加点东西,逐渐认识delphi.比如在窗体中加个按钮,双击按钮,在光标处加一行语句.MessageBox(0,PChar('Ok!'),PChar('Title'),0); 当你运行程序后点按钮后就会弹出一个消息框.

泽普县15945874174: 求一个delphi简单的实例
敞婕铁泰: 这是一个delphi随机生成字符的 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; Timer1: TTimer; ...

泽普县15945874174: 求一个DELPHI的简单计算器代码,能运算加减乘除和退格功能就行 -
敞婕铁泰: procedure TForm1.btn_0Click(Sender: TObject); begin if jl_jjccEX = true then begin edit1.Text := '; jl_jjccEX := false; end; if edit1.Text = '0' then //如果为0按0则为0 edit1.Text := '0' else //如果不为的情况 edit1.Text := edit1.Text + '0'; if jl_jjccfh = '/' then ...

泽普县15945874174: delphi 的一段代码 -
敞婕铁泰: StringGrid1的键盘按下 inherited; //继承 if not (key in ['0'..'9','.',#8]) then key:=#0; //如果键盘按下的那个键的键值不在0到9之间和“.” 和 #8 那么键盘按下的键转为#0(0即是键按下转为无效) 也就是说StringGrid1只接收键 0~9 和 .和 退格符,其它的键一律无效

泽普县15945874174: 求一段简单的Delphi代码 (如何重复执行button) -
敞婕铁泰: 在窗体上放一个timer控件,在Ontimer事件下你要重复执行的代码 procedure TForm1.Timer1Timer(Sender: TObject); begin //重复执行代码 end; 之后将timer的enable设置为false 在两个按钮的点击事件写如下代码即可 procedure TForm1.Button1Click(Sender: TObject); begin Timer1.Enabled:= true; end; procedure TForm1.Button2Click(Sender: TObject); begin Timer1.Enabled:= false; end;

泽普县15945874174: 一个Delphi的简单程序 -
敞婕铁泰: var i:integer; begin for i:=0 to 19 do begin showmessage('heihei'); end; end;

泽普县15945874174: 求助一个很简单的DELPHI计算小程序 -
敞婕铁泰: qry为一查询表.1.读到c qry.sql.text:='select c from BH.mdb where id=:id'; //假设与字段id对应,读c qry.Parameters.ParamByName('pym').Value:=d; qry.open; c:=qry.fieldbyname('c').asinteger;2.这样就可以利用公式了d=a+c*b.这是一个结果.如果数据库中的多条记录要输出一行一行的.也不难啊.可以用form的canvas属性在上面写.如果要好写一点.用一上listbox或memo一行一行的写.也行.

泽普县15945874174: delphi中combobox一个简单的代码?
敞婕铁泰: procedure TForm1.FormCreate(Sender: TObject); var i:integer; begin combobox1.Clear; with combobox1 do begin for i:=0 to 8 do begin items.Add(inttostr(i)); end; end; end; end.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网