我还在D2007上,需要创建一个支持unicode的虚拟键盘.所以我使用TMS的unicode按钮来模拟键,但我想避免的是必须分配
mmo.Lines.Text := mmo.Lines.Text + Button1.Caption;
~50次.必须有一种更好的方法一次发送一个字符到备忘录.有没有办法在Object Inspector中使用Tag属性并从那里分配值,或者如何?
你会怎么做?
OnClick
为所有按钮分配相同的事件处理程序.如上所述Button1
,不是按名称引用每个按钮,而是使用Sender
参数.这就是它的用途.它告诉您触发了哪个控件的事件导致处理程序运行.
Sender
有静态类型TObject
.单击其中一个按钮时,Sender
将具有运行时类型TButton
或您正在使用的任何实际类.要使代码编译,您需要进行类型转换.例如:
procedure TKeyboardForm.ButtonClick(Sender: TObject); begin mmo.Lines.Text := mmo.Lines.Text + (Sender as TButton).Caption; end;