VCL主要框架】的更多相关文章

TObject ->TPersistent  Classes,抽象类 ->TComponent  Classes,抽象类 ->TControl  Controls ->TGraphicControl /TWinControl  Controls TObject主要定义了四种功能的虚方法 1.1.         对象的构造函数和析构函数(Create & Destroy). 1.2.         返回运行时类型信息(因为在{$M-}状态下,所以看不到). 1.3.   …
之所以要用类函数代替API,是因为VCL对它做了一些包装,好在API起作用之前和之后做一些额外的事情:通知和判断等等.之所以类函数要包装一个CM_消息,是因为这样方便程序员(在调用类函数的基础上)截断和改写这个处理过程 举例: procedure TWinControl.Invalidate; begin // 注意,是简单执行函数,把消息当作参数,不是发送消息 Perform(CM_INVALIDATE, , ); // 注意,第二个参数即WParam是0,即要求API使自己失效,而不是仅仅做…
意外注意到这个小细节: procedure TControl.WMLButtonUp(var Message: TWMLButtonUp); begin inherited; // 注意,如果是直接点击Form1,会执行TCustomForm.DefaultHandler(var Message);相当于给子类控件提供了新的处理消息的机会 if csCaptureMouse in ControlStyle then MouseCapture := False; if csClicked in C…
Delphi自定义消息应用及delphi托盘实现interfaceuses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,shellapi;const  WindowsMessage =WM_USER+101   ;procedure UserPro(Var Message:TMessage):message WindowsMessage 其中UserP…
VCL是基于系统的,根本在于系统API,FMX是基于绘图的,根本在于渲染引擎  VCL的发展受制于系统,(你在VCL的代码里面可以看到Borland对M$的妥协),而FMX的发展仅仅受制于硬件 VCL的性能更高,但是效果相对低下:FMX性能更低,但是效果相对更好  如果要理解FMX的精华,可以从我实现的富文本和VCL下实现的富文本对比中看出来,VCL下TRichEdit大量运用了API,但是我全部是靠着绘图实现的,使用最多的就是Canvas 个人感觉,现在安卓手机性能过剩很严重,没必要纠结界面到…
永远记住,无论你是用 SDK 还是借用 VCL 来创建窗口,都要遵循 Windows 的游戏规则,即先注册窗口类,然后再创建窗口实例,在消息循环中写实现代码.你还要知道 Windows 已经为了我们预注册了多个窗口类,例如“Edit”.“ComboBox”,这时候我们要做的就是直接创建这些窗口,无需注册窗口类了:在 Delphi 中这一切更简单了,VCL 全部为你做好了,你只需简单地在设计窗体上拖动你要的控件再写实现代码就可以了,是不是很 cool? 一.窗口的创建 VCL 中,具有句柄(Han…
代码如下: function TControl.Perform(Msg: Cardinal; WParam, LParam: Longint): Longint; var Message: TMessage; begin Message.Msg := Msg; Message.WParam := WParam; Message.LParam := LParam; Message.Result := ; if Self <> nil then WindowProc(Message); Resul…
{ New TControlStyles: csNeedsBorderPaint and csParentBackground. These two ControlStyles are only applicable when Themes are Enabled in applications on Windows XP. csNeedsBorderPaint causes the ThemeServices to paint the border of a control with the…
本系列博客主要是以对战游戏为背景介绍3D对战网络游戏常用的开发技术以及C++高级编程技巧,有了这些知识,就可以开发出中小型游戏项目或3D工业仿真项目. 笔者将分为以下三个部分向大家介绍(每日更新): 1.实现基本通信框架,包括对游戏的需求分析.设计及开发环境和通信框架的搭建: 2.实现网络底层操作,包括创建线程池.序列化网络包等: 3.实战演练,实现类似于CS反恐精英的3D对战网络游戏: 技术要点:C++面向对象思想.网络编程.Qt界面开发.Qt控件知识.Boost智能指针.STL算法.STL.…