如果完成任何 *** 作,如何设置变量(在Delphi中)?

如果完成任何 *** 作,如何设置变量(在Delphi中)?,第1张

概述我需要以某种方式在Delphi 2009中实现它: 用户单击按钮2.如果用户的最后一个 *** 作是单击按钮1,那么我想做一件事,但如果用户的最后一个 *** 作是其他任何 *** 作,我想做另一件事. 显然,我设置了一个布尔变量:UserClickedOnButton1并在单击按钮1时将其设置为true,然后在Button 2的OnButtonClick事件中测试该变量. 我的问题是,在点击按钮2之前,如果用户完成其他 我需要以某种方式在Delphi 2009中实现它:

用户单击按钮2.如果用户的最后一个 *** 作是单击按钮1,那么我想做一件事,但如果用户的最后一个 *** 作是其他任何 *** 作,我想做另一件事.

显然,我设置了一个布尔变量:UserClickedOnbutton1并在单击按钮1时将其设置为true,然后在button 2的OnbuttonClick事件中测试该变量.

我的问题是,在点击按钮2之前,如果用户完成其他任何 *** 作,我该如何将其设置为false.(例如,鼠标按下,按键,箭头键,切换到另一个程序或其他任何内容).

…或者有一种更简单的方法可以做到这一点,我忽略了.

解决方法 下面的代码似乎有用(D7),但请根据您的具体情况进行检查.

type  Tbutton = class(StdCtrls.Tbutton)  private    FClickedLast: Boolean;    FNextbutton: Tbutton;  protected    procedure WndProc(var Message: TMessage); overrIDe;  public    procedure Click; overrIDe;    property ClickedLast: Boolean read FClickedLast write FClickedLast;    property Nextbutton: Tbutton write FNextbutton;  end;  TForm1 = class(TForm)...procedure TForm1.FormCreate(Sender: TObject);begin  button1.Nextbutton := button2;end;procedure TForm1.button2Click(Sender: TObject);begin  if button1.ClickedLast then    Caption := Caption + ' +'  else    Caption := Caption + ' -';  button1.ClickedLast := False;end;{ Tbutton }procedure Tbutton.Click;begin  inherited Click;  if (FNextbutton <> nil) and Focused then    FClickedLast := True;end;procedure Tbutton.WndProc(var Message: TMessage);begin  if (FNextbutton <> nil) and not (csDestroying in ComponentState) then    case Message.Msg of      CM_CANCELMODE,WM_KEYFirsT..WM_KEYLAST:        FClickedLast := False;      WM_KILLFOCUS:        if TWMKillFocus(Message).FocuseDWnd <> FNextbutton.Handle then          FClickedLast := False;    end;  inherited WndProc(Message);end;

说明:

> CM_CANCELMODE可以在任何地方处理鼠标点击而不会导致焦点变化,> WM_KEY *处理所有键事件,但也切换到另一个应用程序(有一个WM_SYSKEYDOWN,否则WM_KILLFOCUS需要注意),> WM_KILLFOCUS处理其他所有事情.

总结

以上是内存溢出为你收集整理的如果完成任何 *** 作,如何设置变量(在Delphi中)?全部内容,希望文章能够帮你解决如果完成任何 *** 作,如何设置变量(在Delphi中)?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1270169.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-08
下一篇2022-06-08

发表评论

登录后才能评论

评论列表(0条)

    保存