画BUTTON控件怎么画,画好了怎么用呀? 把BUTTON拉的长一点就可以了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我拉长了,但要的不是那个效果:)只要上一个,下面一个的样子,真难为人哈,呵呵。。不过还是谢谢了,用IMAGE控件可以画出像BUTTON控件一样的效果?好像不能吧,它怎么代替BUTTON呀?有高招不防说来听听,我是 初学者,请多指教! 以下是在按钮上添加TCanvas然后在其中写字你拦截WM_Paint消息procedure TForm1.Button1Click(Sender: TObject);var c:TCanvas;begin c:=TControlCanvas.Create; TControlCanvas(c).Control:=Button1; c.Brush.Style:=bsClear; c.Pen.Color:=clBlue; c.TextOut(10,10,'确定'); c.TextOut(10,25,'确定'); c.Free;end; 在你需要还行的地方写#13就可以了只是不太灵活。如果你的button不经常变尺寸的话没问题 加#13在caption属性里只能起到加一竖条功能,并不能自动换行的,试过了,谢谢 wisenowa(无人喝彩)的方法可以 kay16(夏日么么茶) 挺不好解决的不好意思了我写了代码,还是不太完善,自己看吧希望能看懂才23分你赚倒了unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TMyButton=class(TButton) private public procedure WMPaint(var Message: TWMPaint);message WM_PAINT; end; TForm1 = class(TForm) Button1: TButton; procedure FormShow(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private declarations } public { Public declarations } procedure MBONCLICK(Sender:TObject); end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.MBONCLICK(Sender:TObject);begin PostMessage(TMyButton(Sender).Handle,WM_PAINT,0,0);end;procedure TForm1.FormShow(Sender: TObject);var b:TMyButton;begin b:=TMyButton.Create(Form1); b.Parent:=Form1; b.Height:=50;//这里可以设置TMyButton的位置 b.OnClick:=MBONCLICK;end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);beginend;{ TMyButton }procedure TMyButton.WMPaint(var Message: TWMPaint);var c:TCanvas;begin inherited; c:=TControlCanvas.Create; TControlCanvas(c).Control:=Self; c.Brush.Style:=bsClear; c.Pen.Color:=clBlue; c.TextOut(10,10,'确定'); c.TextOut(10,25,'确定'); c.Free;end;end. 使用if...else改caption和font可能是这样不知行不行如:if button1.caption='加入/入帐' then begin button1.capton:='加成' button1.font:=.... end; 调用下面的程序为什么总是显示宋体? 三层结构数据库处理的问题 请问已知补码为1.0000,请问它的真值是多少? 好像是没有刷新。请问怎么改? 100分求购《DELPHI6从入门到精通》一书的配套源代码 CreateToolhelp32SnapShot 返回的句柄的使用先后有什么不同吗 mdi主窗口如何嵌入html 请问这句sql在access中如何写 关闭某一窗体时如何释放所有其他窗体? 寻找心目中一个理想的软件! ClientDataSet初始化问题? 现在很多软件的一个功能怎么实现?
然后在其中写字
你拦截WM_Paint消息procedure TForm1.Button1Click(Sender: TObject);
var
c:TCanvas;
begin
c:=TControlCanvas.Create;
TControlCanvas(c).Control:=Button1;
c.Brush.Style:=bsClear;
c.Pen.Color:=clBlue;
c.TextOut(10,10,'确定');
c.TextOut(10,25,'确定');
c.Free;
end;
只是不太灵活。如果你的button不经常变尺寸的话没问题
挺不好解决的
不好意思了
我写了代码,还是不太完善,自己看吧
希望能看懂
才23分你赚倒了unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TMyButton=class(TButton)
private
public
procedure WMPaint(var Message: TWMPaint);message WM_PAINT;
end; TForm1 = class(TForm)
Button1: TButton;
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
procedure MBONCLICK(Sender:TObject);
end;var
Form1: TForm1;
implementation{$R *.dfm}
procedure TForm1.MBONCLICK(Sender:TObject);
begin
PostMessage(TMyButton(Sender).Handle,WM_PAINT,0,0);
end;procedure TForm1.FormShow(Sender: TObject);
var
b:TMyButton;
begin
b:=TMyButton.Create(Form1);
b.Parent:=Form1;
b.Height:=50;//这里可以设置TMyButton的位置
b.OnClick:=MBONCLICK;
end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
beginend;{ TMyButton }procedure TMyButton.WMPaint(var Message: TWMPaint);
var
c:TCanvas;
begin
inherited;
c:=TControlCanvas.Create;
TControlCanvas(c).Control:=Self;
c.Brush.Style:=bsClear;
c.Pen.Color:=clBlue;
c.TextOut(10,10,'确定');
c.TextOut(10,25,'确定');
c.Free;
end;end.
改caption和font
可能是这样
不知行不行
如:if button1.caption='加入/入帐' then
begin
button1.capton:='加成'
button1.font:=....
end;