随笔分类 -  Delphi-VCL控件创建与显示

摘要:Get and set the Z Order of controls at runtime in Delphi VCL. If you are looking for a FireMonkey solution see this post Delphi provides a limited API 阅读全文
posted @ 2017-01-19 16:10 findumars 阅读(907) 评论(0) 推荐(0) 编辑
摘要:The Z order of a window indicates the window's position in a stack of overlapping windows. This window stack is oriented along an imaginary axis, the 阅读全文
posted @ 2016-11-30 07:01 findumars 阅读(310) 评论(0) 推荐(0) 编辑
摘要:本例效果图: 代码文件: 窗体文件: http://www.cnblogs.com/del/archive/2008/10/23/1317862.html 阅读全文
posted @ 2016-11-03 21:53 findumars 阅读(569) 评论(0) 推荐(0) 编辑
摘要:这说明是这句在读属性,并执行相关动作。 阅读全文
posted @ 2016-09-27 05:20 findumars 阅读(432) 评论(0) 推荐(0) 编辑
摘要:Only applicable when Themes are enabled in applications on Windows XP. Causes the parent to draw its background into the control's background. This is 阅读全文
posted @ 2016-04-08 20:50 findumars 阅读(528) 评论(0) 推荐(0) 编辑
摘要:在空窗体上放一个TButton,一个TPanel,然后把在TWinControl.WMEraseBkgnd里下断点: 点击运行,发现程序两次停留在断点上,在观察窗口输入Self.Name,发现就是Form1和Panel1,而没有Button1停在这里。 阅读全文
posted @ 2016-04-07 04:52 findumars 阅读(391) 评论(0) 推荐(0) 编辑
摘要:五种情况下会刷新控件状态(刷新控件状态才能刷新所有子FWinControls的显示): 在TWinControls.PaintControls中,对所有FWinControls只是重绘了边框,而没有整个重绘这些FWinControl子控件。那么什么时候才整个重绘全部FWinControls呢?这时候 阅读全文
posted @ 2016-04-07 04:09 findumars 阅读(840) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/shuaihj/article/details/6129278 阅读全文
posted @ 2016-04-01 17:59 findumars 阅读(1389) 评论(0) 推荐(0) 编辑
摘要:提示: SetParent 应该 Windows.SetParent, 因为 TForm 的父类有同名方法. http://www.cnblogs.com/del/archive/2008/03/10/1097964.html GetParent - 获取指定窗口的父窗口句柄IsChild - 判断 阅读全文
posted @ 2016-03-31 21:04 findumars 阅读(1095) 评论(0) 推荐(0) 编辑
摘要:所谓双缓冲就是先画到内存画布(如: TBitmap), 然后再转帖到目的地.譬如下面小程序: 改为双缓冲绘图可以是: 阅读全文
posted @ 2016-03-31 20:56 findumars 阅读(498) 评论(0) 推荐(0) 编辑
摘要:[delphi] view plain copy     var      TempCanvas: TCanvas;       BufDC: HDC;       BufBitmap: HBITMAP;     begin      // 创建一个与显示设备 阅读全文
posted @ 2016-03-14 22:19 findumars 阅读(906) 评论(0) 推荐(0) 编辑
摘要:就在StdCtrls.pas, ExtCtrls.pas和Buttons.pas三个类里研究就够了,这是初步的搜索结果:   阅读全文
posted @ 2016-02-28 14:35 findumars 阅读(1827) 评论(0) 推荐(0) 编辑
摘要:超类化源码: procedure TWinControl.CreateSubClass(var Params: TCreateParams; ControlClassName: PChar); const {CS_OWNDC标志,属于此窗口类的窗口实例都有自己的DC(称为私有DC) } {CS_CL 阅读全文
posted @ 2016-02-28 00:47 findumars 阅读(2397) 评论(0) 推荐(0) 编辑
摘要:这{$R *.dfm}是一个编译指令,它只是用来告诉IDE,在编译的时候,把 *.dfm文件编到 exe文件资源里面,它本身没有编译进Exe里面。因为TCustomForm是继承而来,所以调用TReader的过程是比较复杂的,三言两语说不清楚,大致是这样TCustomForm.InitInherit 阅读全文
posted @ 2016-02-27 01:02 findumars 阅读(318) 评论(0) 推荐(0) 编辑
摘要:新窗体上放一个Button1和Panel1,仅仅Form1就会收到以下消息: procedure TWinControl.DefaultHandler(var Message); begin if FHandle <> 0 then begin with TMessage(Message) do b 阅读全文
posted @ 2016-02-26 21:03 findumars 阅读(591) 评论(0) 推荐(0) 编辑
摘要:这是取得DC句柄的其中一种方法(会重定义原点和建立新的剪裁区): function TControl.GetDeviceContext(var WindowHandle: HWnd): HDC; begin if Parent = nil then raise EInvalidOperation.C 阅读全文
posted @ 2016-02-26 20:40 findumars 阅读(541) 评论(0) 推荐(0) 编辑
摘要:定义和创建: TWinControl = class(TControl) private FBrush: TBrush; end; constructor TWinControl.Create(AOwner: TComponent); begin inherited Create(AOwner); 阅读全文
posted @ 2016-02-25 22:47 findumars 阅读(392) 评论(0) 推荐(0) 编辑
摘要:先擦除背景: procedure TCustomForm.WMEraseBkgnd(var Message: TWMEraseBkgnd); begin if not IsIconic(Handle) then inherited else begin Message.Msg := WM_ICONE 阅读全文
posted @ 2016-02-25 22:32 findumars 阅读(582) 评论(0) 推荐(0) 编辑
摘要:声明如下: TCustomPanel = class(TCustomControl) private FFullRepaint: Boolean; FParentBackgroundSet: Boolean; procedure CMCtl3DChanged(var Message: TMessag 阅读全文
posted @ 2016-02-25 22:14 findumars 阅读(507) 评论(0) 推荐(0) 编辑
摘要:我忽然发现:TButton既没有处理WM_PAINT,又没有Paint()或者PaintWindow(),那么它是什么时候被绘制的? Form1上放2个TButton,然后设置代码: 在Form1第一次显示时,应该会让这两个Button显示。这两个Button应该会处理WM_PAINT并显示。可是完 阅读全文
posted @ 2016-02-25 21:06 findumars 阅读(633) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示