请教一下关于控件开发问题,有兴趣的人进来看看...是一个学习组件开发的人希望搞明白的一些问题 ( 积分: 100 )

  • 主题发起人 主题发起人 xuegaoyili
  • 开始时间 开始时间
X

xuegaoyili

Unregistered / Unconfirmed
GUEST, unregistred user!
本人最近连着做了几个初级组件,思路感觉似懂非懂。想听听高人解或,

1.新建Tcustomcontrol类组件增加事件,详细的步骤流程
2.继承已有可视组件关于父组件消息的override流程
3.关于TCustomcontrol类组件的鼠标消息的自定义响应
4.关于组合控件的开发要点,比如在TCustomcontrol类中包含其它可视组件的这类组件的开 发,涉及到消息响应的从定义,画布的从绘,事件的增加,子控件属性的隐藏,子控件属性提升 到自定义控件上来...
一个问题25分,最好能讲得成系统,有条理...呵呵.......
 
本人最近连着做了几个初级组件,思路感觉似懂非懂。想听听高人解或,

1.新建Tcustomcontrol类组件增加事件,详细的步骤流程
2.继承已有可视组件关于父组件消息的override流程
3.关于TCustomcontrol类组件的鼠标消息的自定义响应
4.关于组合控件的开发要点,比如在TCustomcontrol类中包含其它可视组件的这类组件的开 发,涉及到消息响应的从定义,画布的从绘,事件的增加,子控件属性的隐藏,子控件属性提升 到自定义控件上来...
一个问题25分,最好能讲得成系统,有条理...呵呵.......
 
推荐你一本书,delphi高手突破,申(曰文,该字不知道如何念,上下结构,上曰下文)著。
有很详细的关于如何写组件的问题,还有很详细的代码。
 
他的那个我看了...了解了一些关于增加事件和处理自定义事件的过程.但还没达到举一反三的效果...想请人给抽象讲讲理论再.
 
关于TCustomcontrol类组件的鼠标消息的自定义响应
你可以参考delphi自带的例子
TMouseEvent = procedure(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer) of object;

FOnMouseDown: TMouseEvent;

property OnMouseDown: TMouseEvent read FOnMouseDown write FOnMouseDown;

procedure TControl.MouseDown(Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Assigned(FOnMouseDown) then FOnMouseDown(Self, Button, Shift, X, Y);
end;

procedure TControl.DoMouseDown(var Message: TWMMouse; Button: TMouseButton;
Shift: TShiftState);
begin
if not (csNoStdEvents in ControlStyle) then
with Message do
if (Width > 32768) or (Height > 32768) then
with CalcCursorPos do
MouseDown(Button, KeysToShiftState(Keys) + Shift, X, Y)
else
MouseDown(Button, KeysToShiftState(Keys) + Shift, Message.XPos, Message.YPos);
end;
 
谢谢楼上的,...你的代码很简洁.能看一看........再等等其它人的理论,,,回头结贴有你分
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部