随笔分类 - 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
阅读全文
摘要: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
阅读全文
摘要:本例效果图: 代码文件: 窗体文件: http://www.cnblogs.com/del/archive/2008/10/23/1317862.html
阅读全文
摘要:这说明是这句在读属性,并执行相关动作。
阅读全文
摘要: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
阅读全文
摘要:在空窗体上放一个TButton,一个TPanel,然后把在TWinControl.WMEraseBkgnd里下断点: 点击运行,发现程序两次停留在断点上,在观察窗口输入Self.Name,发现就是Form1和Panel1,而没有Button1停在这里。
阅读全文
摘要:五种情况下会刷新控件状态(刷新控件状态才能刷新所有子FWinControls的显示): 在TWinControls.PaintControls中,对所有FWinControls只是重绘了边框,而没有整个重绘这些FWinControl子控件。那么什么时候才整个重绘全部FWinControls呢?这时候
阅读全文
摘要:http://blog.csdn.net/shuaihj/article/details/6129278
阅读全文
摘要:提示: SetParent 应该 Windows.SetParent, 因为 TForm 的父类有同名方法. http://www.cnblogs.com/del/archive/2008/03/10/1097964.html GetParent - 获取指定窗口的父窗口句柄IsChild - 判断
阅读全文
摘要:所谓双缓冲就是先画到内存画布(如: TBitmap), 然后再转帖到目的地.譬如下面小程序: 改为双缓冲绘图可以是:
阅读全文
摘要:[delphi] view plain copy var TempCanvas: TCanvas; BufDC: HDC; BufBitmap: HBITMAP; begin // 创建一个与显示设备
阅读全文
摘要:就在StdCtrls.pas, ExtCtrls.pas和Buttons.pas三个类里研究就够了,这是初步的搜索结果:
阅读全文
摘要:超类化源码: procedure TWinControl.CreateSubClass(var Params: TCreateParams; ControlClassName: PChar); const {CS_OWNDC标志,属于此窗口类的窗口实例都有自己的DC(称为私有DC) } {CS_CL
阅读全文
摘要:这{$R *.dfm}是一个编译指令,它只是用来告诉IDE,在编译的时候,把 *.dfm文件编到 exe文件资源里面,它本身没有编译进Exe里面。因为TCustomForm是继承而来,所以调用TReader的过程是比较复杂的,三言两语说不清楚,大致是这样TCustomForm.InitInherit
阅读全文
摘要:新窗体上放一个Button1和Panel1,仅仅Form1就会收到以下消息: procedure TWinControl.DefaultHandler(var Message); begin if FHandle <> 0 then begin with TMessage(Message) do b
阅读全文
摘要:这是取得DC句柄的其中一种方法(会重定义原点和建立新的剪裁区): function TControl.GetDeviceContext(var WindowHandle: HWnd): HDC; begin if Parent = nil then raise EInvalidOperation.C
阅读全文
摘要:定义和创建: TWinControl = class(TControl) private FBrush: TBrush; end; constructor TWinControl.Create(AOwner: TComponent); begin inherited Create(AOwner);
阅读全文
摘要:先擦除背景: procedure TCustomForm.WMEraseBkgnd(var Message: TWMEraseBkgnd); begin if not IsIconic(Handle) then inherited else begin Message.Msg := WM_ICONE
阅读全文
摘要:声明如下: TCustomPanel = class(TCustomControl) private FFullRepaint: Boolean; FParentBackgroundSet: Boolean; procedure CMCtl3DChanged(var Message: TMessag
阅读全文
摘要:我忽然发现:TButton既没有处理WM_PAINT,又没有Paint()或者PaintWindow(),那么它是什么时候被绘制的? Form1上放2个TButton,然后设置代码: 在Form1第一次显示时,应该会让这两个Button显示。这两个Button应该会处理WM_PAINT并显示。可是完
阅读全文