急急急!!!关于组件开发。 我想开发一个组件,他有一个TPicture属性,请问怎样才能在该组件的属性浏览器中设定他,就像TImage控件的Picture属性一样。请各位高手相助。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 好像要用到对象持久化技术,也就是必需是TPersistent的子类。属性编辑器,要是TPropertyEditor的子类. 好像TPicture有默认属性编辑器啊 直接写就行,主要是写一个TPicture的OnChange事件然后在Paint画一画就行,然后TPicture有它默认的属性编辑器unit ImageControl;interfaceuses Windows, Messages, SysUtils, Classes, Controls, Graphics, ExtCtrls;type TImageControl = class(TCustomControl) private { Private declarations } FPicture: TPicture; FAutoSize: Boolean; FStretched: Boolean; procedure PictureChanged(Sender: TObject); procedure SetPicture(Value: TPicture); protected { Protected declarations } procedure Paint; override; public { Public declarations } constructor Create(AOwner: TComponent); override; destructor Destroy; override; published { Published declarations } property Picture: TPicture read FPicture write SetPicture; end;procedure Register;implementationprocedure Register;begin RegisterComponents('GybCtrl', [TImageControl]);end;{ TImageControl }constructor TImageControl.Create(AOwner: TComponent);begin inherited; FPicture := TPicture.Create;end;destructor TImageControl.Destroy;begin FPicture.Free; inherited;end;procedure TImageControl.Paint;begin inherited; Canvas.Draw(0, 0, FPicture.Graphic);end;procedure TImageControl.PictureChanged(Sender: TObject);begin FPicture.Assign(FPicture.Graphic);end;procedure TImageControl.SetPicture(Value: TPicture);begin FPicture.Assign(Value);end;end. 不好意思我上面那个,有错误,没有写过控件constructor TImageControl.Create(AOwner: TComponent);begin inherited; FPicture := TPicture.Create; FPicture.OnChange := PictureChanged;end;procedure TImageControl.PictureChanged(Sender: TObject);begin Repaint;end;TPicture有默认的属性编辑器,当装上控件后就会向TImage那样出现Picture属性编缉器了 问个xpmenu控件的问题吧,好象有很多的功能,可是我一个也弄不出来,谁可以举个例子,在自画个什么东东? 服务器端如何建立和客户端连接通信的线程 如何防止程序打开两次????? 谁能给个FastReport3使用自定义变量的例子? 如何实时访问远程计算机上的paradox表 如何在控制台下使用控件? 如何使用SQL-DMO在win2000下管理sql server2000 这是什么错误??? ras 拨通后,控件无法找到主机名 为什么?我装了个delphi7,里面怎么没有报表控件?用自定义安装也没有。 一个有关组件编写的问题,请大家帮忙。 请问大家,图标文件和普通位图文件的区别?
属性编辑器,要是TPropertyEditor的子类.
然后在Paint画一画就行,然后TPicture有它默认的属性编辑器unit ImageControl;interfaceuses
Windows, Messages, SysUtils, Classes, Controls, Graphics, ExtCtrls;type
TImageControl = class(TCustomControl)
private
{ Private declarations }
FPicture: TPicture;
FAutoSize: Boolean;
FStretched: Boolean; procedure PictureChanged(Sender: TObject);
procedure SetPicture(Value: TPicture);
protected
{ Protected declarations }
procedure Paint; override;
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
{ Published declarations }
property Picture: TPicture read FPicture write SetPicture;
end;procedure Register;implementationprocedure Register;
begin
RegisterComponents('GybCtrl', [TImageControl]);
end;{ TImageControl }constructor TImageControl.Create(AOwner: TComponent);
begin
inherited;
FPicture := TPicture.Create;
end;destructor TImageControl.Destroy;
begin
FPicture.Free;
inherited;
end;procedure TImageControl.Paint;
begin
inherited;
Canvas.Draw(0, 0, FPicture.Graphic);
end;procedure TImageControl.PictureChanged(Sender: TObject);
begin
FPicture.Assign(FPicture.Graphic);
end;procedure TImageControl.SetPicture(Value: TPicture);
begin
FPicture.Assign(Value);
end;end.
constructor TImageControl.Create(AOwner: TComponent);
begin
inherited;
FPicture := TPicture.Create;
FPicture.OnChange := PictureChanged;
end;procedure TImageControl.PictureChanged(Sender: TObject);
begin
Repaint;
end;TPicture有默认的属性编辑器,当装上控件后就会向TImage那样出现Picture属性编缉器了