在TButton类派生Button对象时,构建函数里应该有Caption的设置.

解决方案 »

  1.   

    procedure TControl.SetText(const Value: TCaption);
    begin
      if GetText <> Value then SetTextBuf(PChar(Value));
    end;procedure TControl.SetTextBuf(Buffer: PChar);
    begin
      Perform(WM_SETTEXT, 0, Longint(Buffer));
      Perform(CM_TEXTCHANGED, 0, 0);
    end;
      

  2.   

    确实没有在TControlButton,TButton,甚至TWinControl,TControl的源码中画,只是发送一个消息。而这个消息在WINDOW系统提供的控件BUTTON类处理,输出Caption,所以你看不到。
    看看这个:
    procedure TButton.CreateParams(var Params: TCreateParams);
    const
      ButtonStyles: array[Boolean] of DWORD = (BS_PUSHBUTTON, BS_DEFPUSHBUTTON);
    begin
      inherited CreateParams(Params);
      CreateSubClass(Params, 'BUTTON');
      Params.Style := Params.Style or ButtonStyles[FDefault];
    end;