控件开发的问题,关于事件的(50分)

  • 主题发起人 主题发起人 biechangjiang
  • 开始时间 开始时间
B

biechangjiang

Unregistered / Unconfirmed
GUEST, unregistred user!
我从panel继承下来一个类。里面有 TImage类与TTreeView类。
我能正常的改变属性。可是我怎么样做这两个类的相应的触发事件呀!如点击重画
代码如下:
unit MyPanel;

interface

uses
SysUtils, Classes, Controls, ExtCtrls,ComCtrls;

type
TMyPanel = class(TPanel)
private
FImage : TImage;
FTreeView : TTreeView;
FOnImageClick : TNotifyEvent;
{ Private declarations }
protected
{ Protected declarations }
public
constructor Create( AOwner: TComponent ); override;
destructor Destroy; override;
{ Public declarations }
published
property Image : TImage read FImage;
property TreeView : TTreeView read FTreeView;

property OnImageClick : TNotifyEvent read FOnImageClick write FOnImageClick;
{ Published declarations }
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents('Samples', [TMyPanel]);
end;

{ TMyPanel }

constructor TMyPanel.Create(AOwner: TComponent);
begin
inherited;
FImage := TImage.Create(self);
FImage.Align := alTop;
FImage.Show;
FImage.Height := 20;
FImage.Parent := self;

FTreeView := TTreeView.Create(self);
FTreeView.Align := alClient;
FTreeView.Show;
FTreeView.Parent := self;

FImage.OnClick := self.FOnImageClick;
end;

destructor TMyPanel.Destroy;
begin
FImage.Free;
FTreeView.Free;
inherited;
end;

end.
 
从TCustomPanel继承吧, 它的重绘方法是可以继承的。
 
Panle没有Canvas属性,所以你要写的控件从TPanle继承不是一个很好的选择
 
to 楼上的。从TCustomPanel 上继承也行。不过我在上面放的 TImage与TTreeView 这两个控件上的事件。我怎么捕获呀!
 
你都要什么事件,就为你的新控件添加相应的事件,在creat的时候,把这个事件指向控件本身的image或者treeview的相应事件就行了
 
你接管你需要处理的事件不就可以了么,需要作你自己的处理的化重载onpaint方法,或者写函数自己处理相应的消息
 
放分了!
 

Similar threads

I
回复
0
查看
527
import
I
I
回复
0
查看
728
import
I
I
回复
0
查看
759
import
I
I
回复
0
查看
633
import
I
后退
顶部