我把我的按钮实现部分的程序贴出来:
procedure TForm1.SpeedButtonNumberClick(Sender: TObject);
begin
if sender = SpeedButton0 then // 点击了 '0' 按钮
CurrentCalcType.AddChar('0') // 实现添加数字: 0
else if sender = SpeedButton1 then
CurrentCalcType.AddChar('1')
else if sender = SpeedButton2 then
CurrentCalcType.AddChar('2')
else if sender = SpeedButton3 then
CurrentCalcType.AddChar('3')
else if sender = SpeedButton4 then
CurrentCalcType.AddChar('4')
else if sender = SpeedButton5 then
CurrentCalcType.AddChar('5')
else if sender = SpeedButton6 then
CurrentCalcType.AddChar('6')
else if sender = SpeedButton7 then
CurrentCalcType.AddChar('7')
else if sender = SpeedButton8 then
CurrentCalcType.AddChar('8')
else if sender = SpeedButton9 then
CurrentCalcType.AddChar('9');
1、将表单的keypreview属性置为True;
2、将每一个SpeedButton.Hint设为SpeedButton.Caption
例如:把“6”这个按钮的HINT设为"6";
把“+”这个按钮的HINT设为"+";
......
3、在表单的OnKeypress事件中输入以下代码
var i:integer;
begin
if key=#13 then
SpeedButton回车.click
else
for i=0 to controlcount-1 do
if controls.hint=key then
begin
SpeedButtonNumberClick(controls);
exit;
end;
end;
此代码已调试通过,请散分。
1、将表单的keypreview属性置为True;
2、将每一个SpeedButton.Hint设为SpeedButton.Caption
例如:把“6”这个按钮的HINT设为"6";
把“+”这个按钮的HINT设为"+";
......
3、在表单的OnKeypress事件中输入以下代码
var i:integer;
begin
if key=#13 then
SpeedButton回车.click
else
for i=0 to controlcount-1 do
if controls.hint=key then
begin
(controls as TSpeedButton).onclick(controls); //----------改个地方更方便
exit;
end;
end;
此代码已调试通过,请散分。