有几个edit(1,2,3...)和11个speedbutton,其中speedbutton分别被标以(1234567890.),现要求在edit中输入数据(功能类似windows中的计算器),即当edit1有输入焦点时,按动speedbutton可输入对应的数字,当其他的edit有输入焦点同上,以此类推。我被这问题搞了一天,先谢谢大家了。

解决方案 »

  1.   

    1个speedbutton的onclick中写这个代码,其他speedbutton的onclick中指向这个代码即可.TEdit(ActiveControl).Text:=TEdit(ActiveControl).Text+TSpeedButton(Sender).Caption;
      

  2.   

    厉害,这样的代码都让你想得出来,简单明了。mastersky(浪) 朋友,你受分吧。
      

  3.   

    我真倒霉,这么巧的代码在我这里都用不上,又要请教大家了,如下:
    我在form1中创建一个panel1和一个按钮,其中在按钮中写下如下代码:
      form2 := Tform2.Create(Application);
        form2.ManualDock(Panel1, nil, AlClient); //以panel1为界建窗体
    我的目的是按动按钮时,以panel1为边界而打开form2。
    然后在form2中加入几个speedbutton和几个edit,其作用如上。我靠,TEdit(ActiveControl).Text:=TEdit(ActiveControl).Text+TSpeedButton(Sender).Caption;
    语句竟然一点反应也没有,这可要了我的命呀,苦了我一个晚上都搞不出来,查得原因原来是以下语句的祸:
    form2.ManualDock(Panel1, nil, AlClient); //以panel1为界建窗体若改用form2.show;就没问题了,但这样的话我的界面又要重新设计,好烦呀,所以急求大家帮我解决一下,分不够再加就是,谢谢。
      

  4.   

    如果你的TEdit控件名叫 Edit1
    可以用以下代码来通过名字控制它(FindComponent('Edit1') as TEdit).text:='aaa';
      

  5.   

    edit.text:=(Sender as Tspeedbutton).caption 写在CLICK事件里试试  所有的按键 都用同一事件  我试了TBUTTON 类的 没问题 你试试
      

  6.   

    to  bookong(不空) :
    我有好多个edit呀,又有十多个speedbutton,其实不是在我这种特殊情况下, mastersky(浪)的代码完全可以实现的。现在惨在我用了
    form2.ManualDock(Panel1, nil, AlClient); //以panel1为界建窗体
    来创建新的窗口,这样的问题就大了,mastersky(浪)的代码在form2就派不上用场了。to songyanbin(孤叶):
    你能否再详细说说?谢谢。
      

  7.   

    我的思路和   mastersky(浪) 的一样 好像还没他考虑的周全
    至于你说的情况 我没遇上过 但我想应该可以解决吧
      

  8.   

    使用FindComponent函数太麻烦了,能否在保留我原先的代码的基础上去实现呢?