我想在TEdit控件的前面加上一个按钮,同时不影响Edit的功能.和按钮的功能,
Button嵌入在Edit中.
不要告诉我说用一个Tpanel实现.
有没有什么好办法.
我用代码将Button嵌入到了Edit中,但是当Edit得到焦点后,Button就不见了.
有什么办法将Edit的起始位置向后移一些吗?

解决方案 »

  1.   

    Memo可以设文字显示区域,Edit没试成功
    var
      vRect: TRect;
    begin
      Button1.Parent := Memo1;
      Button1.Top := 0;
      Button1.Left := Memo1.ClientWidth - Button1.Width;
      vRect := Rect(0, 0, Memo1.Width - 32, Memo1.Height);
      Dec(vRect.Right, Button1.Width);
      Memo1.Perform(EM_SETRECT, 0, Integer(@vRect));
    end;
      

  2.   

    刚才试了下,在Edit中,好像不行吧?
      

  3.   

    终于查出来了,
    少了一句话.要在CreateParams 加一句
    Params.Style := Params.Style or WS_CLIPCHILDREN;
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      ed:Tedit;
      bt:Tbutton;
    begin
      ed := TEdit.Create(self);
      ed.Parent := self;
      ed.Top := 10;
      ed.Left := 10;
      ed.Height := 50;
      ed.Width := 100;
      bt := TButton.Create(self);
      bt.Parent := ed;
      bt.Top := 10;
      bt.Left := 10;
      bt.Height := 20;
      bt.Width := 40;
      bt.Caption := '点我';
    end;end.