Escape 的 OnKeyPress 默认关闭表单

问题描述 投票:0回答:2

如何让应用程序中的每个新创建的表单都实现 OnKeyPress 过程并将 KeyPreview 设置为 True?

我不希望不断地将过程添加到 OnKeyPress 事件并手动将 KeyPreview 设置为 True。

forms delphi delphi-7
2个回答
2
投票

定义您自己的表单 TKPForm,它继承自 TForm,并添加一个构造函数,将 KeyPrview 设置为 True,并有一个按键来执行您想要的操作。 当然,如果您需要 TKPForm 新实例特有的代码,则必须覆盖 keyprss。

我已经很长时间没有使用 Delphi 了,但这应该不会太遥远。

unit KPForm;

interface

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

type
  TKPForm = class(TForm)

 private
    { Private declarations }
  public
    constructor CreateNew(AOwner: TComponent); override;
  end;
var
  TKPForm: TKPForm 

implementation

{$R *.dfm}
constructor KPForm.CreateNew(AOwner: TComponent);
begin
  inherited Create(AOwner);
  Self.KeyPreview = true;
  Self.OnKeyPress = YourKeyPressEventProcedure;
end;

因此,当您需要新表格时,您可以使用新的 KPForm。

看看视觉形式继承。

希望有帮助。


0
投票

我发现的最好方法是创建表单模板并将其添加到存储库。然后,将其设置为存储库中的“新表单”。

在这种情况下,每当您创建新表单时,它都会是那个模板。您所要做的就是更改名称和标题。

这对我在 Delphi 7 中很有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.