如何替换从 TCustomEdit 中删除的 Protected 虚拟 DoTyping 方法?
How to replace the removed Protected virtual DoTyping method from TCustomEdit?
我有一个自定义的 FMX 组合框控件,我正试图从 Delphi XE6 移动到 Delphi 10.1 Berlin。该控件继承自 TComboEdit。在我的控制下,我覆盖了受保护的虚拟方法 - "DoTyping",它曾经存在于 TCustomEdit 中,但在 Delphi 10.1 Berlin 中不再存在。如何在不必重写整个控件的情况下保留我的代码? Delphi 10.1 Berlin 中有我监督的同义词吗?
看起来好像 TCustomEdit 添加了一个新的 属性
Model: TCustomEditModel
这再简单不过了。
股票 TComboEdit 有一个 OnTyping
事件。
无论 DoTyping
方法移动到哪里,它的实现肯定是这样的:
procedure TSomething.DoTyping;
begin
if assigned(FOnTyping) then FOnTyping(Self);
end;
所以只需拿起曾经在 DoTyping
中的代码,将其剪切。
将您的自定义 ComboEdit(或股票 TComboEdit
)放在表单上,转到对象检查器中的事件,双击 OnTyping
并将代码粘贴到事件处理程序中。
procedure TForm50.ComboEdit1Typing(Sender: TObject);
begin
//Paste here.
end;
这就是 Uwe 所说的 "wiring the event"。
我有一个自定义的 FMX 组合框控件,我正试图从 Delphi XE6 移动到 Delphi 10.1 Berlin。该控件继承自 TComboEdit。在我的控制下,我覆盖了受保护的虚拟方法 - "DoTyping",它曾经存在于 TCustomEdit 中,但在 Delphi 10.1 Berlin 中不再存在。如何在不必重写整个控件的情况下保留我的代码? Delphi 10.1 Berlin 中有我监督的同义词吗?
看起来好像 TCustomEdit 添加了一个新的 属性
Model: TCustomEditModel
这再简单不过了。
股票 TComboEdit 有一个 OnTyping
事件。
无论 DoTyping
方法移动到哪里,它的实现肯定是这样的:
procedure TSomething.DoTyping;
begin
if assigned(FOnTyping) then FOnTyping(Self);
end;
所以只需拿起曾经在 DoTyping
中的代码,将其剪切。
将您的自定义 ComboEdit(或股票 TComboEdit
)放在表单上,转到对象检查器中的事件,双击 OnTyping
并将代码粘贴到事件处理程序中。
procedure TForm50.ComboEdit1Typing(Sender: TObject);
begin
//Paste here.
end;
这就是 Uwe 所说的 "wiring the event"。