我想作个模拟键盘,遇到了些问题,现在有两个Tedit框,假使有个按钮,这个按钮代表“A”,当输入焦点在Edit1上,就输入到Edit1,当输入焦点在Edit2上,就输入到Edit2,应如何实现?

解决方案 »

  1.   

    procedure TForm.Edit1OnEnter(Sender:TObject);
    begin
      button1.Caption:='Edit1';
    end;
    procedure TForm.Edit2OnEnter(Sender:TObject);
    begin
      button1.Caption:='Edit2';
    end;
      

  2.   

    procedure TForm1.SpeedButton1Click(Sender: TObject);
    begin
      Tedit(ActiveControl).Text := 'A';
    end;--TSpeedButton才行,
      TSpeedButton没有焦点,按的时候焦点不转移
      

  3.   

    是不是这样:
    procedure TForm1.SpeedButton1Click(Sender: TObject);
    begin
      if self.ActiveControl = Edit1 then
        Edit1.Text := 'A'
      else if self.ActiveControl = Edit2 then
        Edit2.Text := 'A'
    end;
      

  4.   

    要实现你说的这个功能,首先你的按钮不能获得焦点,也就是说你不能用TButton,要用TSpeedButton,这是前提条件.然后代码如下:
    procedure TForm1.SpeedButton1Click(Sender: TObject);
    begin
      if (ActiveControl is Tedit) then
        (ActiveControl as Tedit).text := 'A';
    end;