gpt4 book ai didi

按下按钮时Delphi停止程序

转载 作者:行者123 更新时间:2023-12-03 18:16:13 24 4
gpt4 key购买 nike

如何在执行过程中按下某个按钮来停止重复循环?该程序只将一个字母写入编辑框,然后等待给定的时间,以指定的顺序写入另一个字母等,使用 sysutils.sleep 进行暂停。

例子:

procedure TForm1.Button4Click(Sender: TObject);
var
j: integer;

begin
edit1.Text:='a';
edit1.Text:='a';
sysutils.Sleep(l*20);
edit1.Text:='b';
edit1.text:='3';
sysutils.sleep(l*20);
j:= 1 ;

repeat
edit1.Text:='1';
sysutils.sleep(l*2);
edit1.Text:='0';
edit1.text:='2';
sysutils.sleep(l*2);
edit1.Text:='3';
edit1.text:='4';
sysutils.sleep(l*2);
edit1.Text:='5';
sysutils.sleep(l*2);
j:= j + 1;
until j = 5;

end;

我需要的是:我按下一个按钮,它会写下这些字母,然后每当我按下其他按钮时,它就会停止程序并跳转到其他按钮程序。

我知道这是可能的,因为很多应用程序可以循环直到你按下某个东西并在你按下按钮时停止循环,但我不知道如何做到这一点。目前,应用会卡住,直到它完成循环。

最佳答案

正如 David 在他的评论中所说,您需要了解事件驱动编程。简而言之,当您的程序启动时,它只是在等待事件发生。事件是例如单击按钮、用户在编辑框中键入内容、从通信端口接收数据等。作为程序员,您的工作是编写事件处理程序,即由这些事件触发的代码(并希望做一些有用的事情)。

您的代码中已经有一个事件处理程序 Button4Click。根据您的描述,您还将有另一个 OnClick 处理程序,也许它是 Button5Click。为了完成您的任务,您还需要一个 TTimer 控件,它有一个 OnTimer 事件。事件处理程序应尽可能少地执行操作。

因此,在您的“ react 游戏”中,您需要三个事件:

  • Button4Click 开始你的“游戏”
  • Timer1定时器事件改变编辑框中的字符
  • 按钮 5 单击以停止“游戏”。

此外,您还需要一个存储空间来存储要显示的字符。由于您显示的是单个字符,因此可以将它们存储在一个字符串中。如果要在编辑框中显示字符串,则可以使用 TStringList 作为存储。要知道在下一个计时器事件中显示哪个字符,您可以使用整数变量作为计数器。

Button4Click 事件处理程序将

  • 初始化字符存储,我们称之为s,以及计数器变量,我们称之为i。
  • 在编辑框中显示第一个字符
  • 设置定时器间隔
  • 启动计时器(在设计时您将设置 Timer1.Enabled := false)

Timer1Timer 事件处理程序将

  • 停止计时
  • 增加计数器 i,
  • 显示字符 s[i]
  • 根据需要设置新的间隔
  • 重新启动计时器

Button5Click 事件处理程序将

  • 停止计时
  • 无论你想让它做什么

希望这能让您继续前进。我没有为您编写任何示例代码,因此您可以自己考虑。但如果你碰壁了,就你的问题提出具体问题。

关于按下按钮时Delphi停止程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27176596/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com