之所以要用类函数代替API,是因为VCL对它做了一些包装,好在API起作用之前和之后做一些额外的事情:通知和判断等等.之所以类函数要包装一个CM_消息,是因为这样方便程序员(在调用类函数的基础上)截断和改写这个处理过程 举例: procedure TWinControl.Invalidate; begin // 注意,是简单执行函数,把消息当作参数,不是发送消息 Perform(CM_INVALIDATE, , ); // 注意,第二个参数即WParam是0,即要求API使自己失效,而不是仅仅做…
我为了移动一个无标题栏的窗体,使用了WM_NCHITTEST消息,这个消息大概如下: 通常,我们拖动对话框窗口的标题栏来移动窗口,但有时候,我们想通过鼠标在客户区上拖动来移动窗口. 一个容易想到的方案是,处理鼠标消息WM_LBUTTONDOWN和WM_LBUTTONUP.在OnLButtonUp函数中计算鼠标位置的变化,调用MoveWindow实现窗口的移动. 注意,拖动标题栏移动窗口的时候,会出现一个矩形框,它提示了窗口移动的当前位置.当鼠标左键放开的时候,窗口就移动到矩形框所在位置.而我们的…
好奇,为什么Create函数明明是个构造函数,还要带上override;这是C++里没有的事情.我虽然也明白其大致的作用和目的,但还是没有见到官方和权威的说法.如果哪位大大见到此文,还望给一个详细一点的解释,谢谢. ----------------------------VCL关键类------------------- TObject = class constructor Create; // 注意不带参数.可能虚构造函数只对某一个起作用,而不是全体 destructor Destroy;…
去年5月的时候,Jerry曾经写了一篇文章:使用Java程序消费SAP Leonardo的机器学习API,而最近另外做的一个项目,需要在Web应用里做同样的事情. 因为有了前一篇文章的铺垫,避免了很多重复的工作量.本文还是选择使用SAP Leonardo里的一个Product Image Classification API,即给定一张产品的图片,该API能识别出此产品的类别. 再回顾下这个API的功能:该API的模型是由SAP基于大约5万张Icecat图片训练而成,能区分29种不同的类别,这些…
TWinControl的构造函数中会调用MakeObjectInstance并且传递MainWndProc作为窗口消息处理函数,而MainWndProc则会调用虚函数WndProc来处理窗口消息.留个爪,对TButton的主要方法,都要仔细解读一下. 推测VCL控件组件大都应该重载TWinControl的虚函数WndProc来进行处理窗口消息的工作,举例: procedure TButtonControl.WndProc(var Message: TMessage); override; beg…
目录 一.作用域与名字查找 1.作用域的嵌套 2.在编译时进行名字查找 3.名字冲突与继承 4.通过作用域运算符来使用隐藏的成员 二.同名函数隐藏与虚函数覆盖 1.几种必须区分的情况 2.一个更复杂的例子 类的关系图: 一.作用域与名字查找 1.作用域的嵌套 派生类的作用域嵌套在基类之内 Bulk_quote bulk; cout<< bulk.isbn(); 名字isbn解析过程: 因为我们是通过Bulk_quote的对象调用isbn的,所以首先在Bulk_quote中查找,这一步没有找到名…
首先我们得有一个可以正常工作的Restful API: 然后在Cloud for Customer的Cloud Application Studio里创建Restful API的模型,把第一步可以正常工作的Restful API url填进模型里去: 然后在ABSL里使用如下代码进行消费: import ABSL; if( this.OutboundDeliveryID.IsInitial() == false){ raise already_delivered.Create("E")…
Marketing Cloud里的Contact标准tile(下图红色tile)上是没有当前系统contact数字显示的,请对比profile tile(下图黑色tile). 客户有需求希望在Launchpad Contact tile上也显示这个数字,因此我新建了一个tile. 需要给这个tile配置一个OData API url: /sap/opu/odata/sap/CUAN_CONTACT_SRV/InteractionContacts/$count?$filter=YY1_FACEID…
今天工作中试图调用Commerce Cloud的user creation API用代码创建Hybris用户时,遇到下面这个错误消息. 我觉得很奇怪,因为backoffice里能查到这个id为jerryclient的oauth client,可错误信息为啥说找不到? 仔细查看,发现我给这个client分配的权限角色如下:ROLE_CUSTOMERSUPPORTAGENTGROUP和ROLE_CUSTOMERGROUP: 根据SAP文档,如果oauth client的grant_type为clie…