如何写控件?(100分)

  • 主题发起人 主题发起人 0993
  • 开始时间 开始时间
0

0993

Unregistered / Unconfirmed
GUEST, unregistred user!
我想写一个控件,只写一个*.pas文件,而不是建立一个新工程,如何设置才能只写PAS文件?
我想修改TBUTTON控件,使默认font为宋体,字号为9。如何实现?请给出源程序和注释。
 
菜单component->new component...
Ancestor type 填TButton
Class name 填你希望你的控件的名字
然后ok
在生成的pas中控件定义的public部分写上如下定义:
constructor Create(AOwner: TComponent); override;
按Ctrl-Shift-C键
在生成的implements代码部分写如下几行:
inherited;
Font.Name := '宋体';
Font.Size := 9;
存盘.
选菜单component->install component...安装你刚才建立的控件就一切ok了
 
没有工程的pas文件?
干什么用?
直接用文本编辑器不就行了吗
 
new-unit不行么?“
 
new->unit其实生成的是个根本没用的unit, 因为它缺了关键的uses部分, 需要你手工
加上你需要的所有uses内容, 那总不是一件很轻松的事.
 
傻乎乎的,把FORM的字体改成宋体9号字以后,以后放在FORM上的控件的字体就
都是宋体9号了。。。。。。。。。。。。。。
 
Another_eyes你好,您所提的方法为什么在生成的控件默认的FONT仍为MS,8号?请赐教!
cch_b你好,您 所说的不失为一个好方法,但还得每次修改form的FONT属性。
请各位大虾帮忙想一想如何使新生成的form的默认的为宋体,9号呢?
 

inherited;
<font color = #ff0000><strong>ParentFont := False;</font></strong>
Font.Name := '宋体';
Font.Size := 9;
 
BaKuBaKu
您好,为什么加上ParentFont := False;还是不行?
 
如果只是想改默认字体的话,可以修改Delphi的源程序: StdCtrls.pas
新建一个项目,在窗体上放一个 Button,按住Ctrl单击 TButton可找到该文件
找到下面代码:
constructor TButton.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
ControlStyle := [csSetCaption, csOpaque, csDoubleClicks];
Width := 75;
Height := 25;
TabStop := True;
end;

在 Width 前加上
Font.size:=...;
Font.name:=...;


 
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
TMyButton = class(TButton)
public
Constructor Create(AOwner: TComponent); override;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
{ TMyButton }
constructor TMyButton.Create(AOwner: TComponent);
begin
inherited;
Font.Name := '宋体';
Font.Size := 20;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
with TMyButton.Create(Self) do
begin
Parent := Self;
Caption := 'asdf';
end;
end;
end.

你运行上面的例子看一看,有什么问题吗?其实 ParentFont := False 都是不必要的!
 
----当然不必要
我要不看到你这句话,
差一点批那行红彤彤的大字报了
 
dking2000 和 0993 不知道是不是一个人。

其实 eYes 已经说对了,但是发问者总是说不对,把我也搞糊涂了,于是建议他修改 ParentFont,
这个问题其实没什么难度,也不知道他有没有把别人的回答当一回事,认真地测试过。
 
多人接受答案了。
 
后退
顶部