问题:Tbutton(sender) 与 (sender as Tbutton) 等价吗? 
答: 
1. Sender As TButton时delphi做类型检查。
比如:
var frm:TForm;
beign
  frm:=TFrom.Create(Applicaion);
  (frm as TButton).Caption:='这是错误的';//这里delphi不允许通过
end;
 
2. 而TButton(Sender)不管怎么样总是试图转化的。
比如:
TButton(frm).Caption:='虽然这样可以,但是错误';//这里可以通过,但是如果类型不对,造成内存混乱。
再如:
var i:Longint;
begin
  frm:=TForm.Create(Applicaiton);
  i:=Longint(Frm);
  TForm(i).Caption:='这样写是对的';
end;

问题-Tbutton(sender) 与 (sender as Tbutton) 等价吗?的更多相关文章

  1. (sender as TButton).some 和 TButton(sender).some 的区别是什么?

    (sender as TButton).some 和 TButton(sender).some 的区别是什么? (Sender as TButton) 与 TButton(Sender) 都是 Typ ...

  2. VCL源码分析方法论(以TButton.Caption属性的由来为例)

    最近一段时间似乎流行源码分析:)我也来谈谈在过去一段时间里对VCL源码的分析方法方面的一点体会,本文将不探讨VCL类库的构架和设计模式方面的东本,只是以我们常见的控件属性/方法的实现过程作简单的说明, ...

  3. delphi Sender和Tag的用法1

    Sender和Tag的用法  在它们共同的OnClick事件下返回单击的那个按钮的标题         unit Unit1;interfaceuses  Winapi.Windows, Winapi ...

  4. 关于 Delphi 中的Sender和易混淆的概念(转)

    /////////////////////////////////////////////////////// Delphi 中Sender对象的定义///////////////////////// ...

  5. Delphi中的Sender:TObject对象解析

    Delphi中的Sender:TObject对象解析 procedure TForm1.Button1Click(Sender: TObject); begin end; 解析:Procedure是过 ...

  6. Delphi中Sender对象的知识

    Sender是一个TObject类型的参数,它告诉Delphi哪个控件接收这个事件并调用相应的处理过程.你可以编写一个单一的事件处理句柄,通过Sender参数和IF…THEN…语句或者CASE语句配合 ...

  7. 点击TButton后的执行OnClick和OnMouseDown两个事件的过程(其实是通过WM_COMMAND执行程序员的代码)

    问题的来源:在李维的<深入浅出VCL>一书中提到了点击TButton会触发WM_COMMAND消息,正是它真正执行了程序员的代码.也许是我比较笨,没有理解他说的含义.但是后来经过追踪代码和 ...

  8. Delphi中的Sender:TObject对象解析转载

    https://blog.csdn.net/jl_tiny/article/details/24376661 Delphi中的Sender:TObject对象解析 procedure TForm1.B ...

  9. Perl 脚本报Can't locate Mail/Sender.pm 解决办法

        在新的Linux Server(Red Hat Enterprise Linux Server release 5.7 (Tikanga))上配置磁盘空间告警的perl脚本后,测试时报如下错误 ...

随机推荐

  1. UrlRewriteFilter 美化器的使用方法 伪静态化的解决方案(转)

    一,URL美化器简介 UrlRewriteFilter是一个用于改写URL的Web过滤器,类似于Apache的mod_rewrite.适用于任何Web应用服务器(如Resin,Orion,Tomcat ...

  2. ANDROID_MARS学习笔记_S01_003layout初步

    一.layout介绍 二.测试linear_layout1.activity_main.xml <?xml version="1.0" encoding="utf- ...

  3. 这些废弃的 HTML 标签不要用

    HTML 已经发展了多年,现在 W3C 已经发布了 HTML 5.1 的提案推荐标准,一些陈旧废弃的标签已经在后继的标准中逐渐消失.这里为大家列出那些已经被废弃 HTML 标签,看看你是不是还在使用它 ...

  4. IDirect3DDevice9::GetRenderTargetData

    翻译自DXSDK 将渲染目标数据从设备内存拷贝到系统内存. HRESULT GetRenderTargetData(  [in]  IDirect3DSurface9 *pRenderTarget,  ...

  5. visio2010去除直线交叉处的跨线

    设计(最上方)->连接线(最右侧)->显示跨线(取消打钩)

  6. 【HDOJ】4579 Random Walk

    1. 题目描述一个人沿着一条长度为n个链行走,给出了每秒钟由i到j的概率($i,j \in [1,n]$).求从1开始走到n个时间的期望. 2. 基本思路显然是个DP.公式推导也相当容易.不妨设$dp ...

  7. Struts2国际化文件乱码解决

    方法1:使用native2ascii进行编码转换 代码如下: native2ascii -encoding UTF-8 GlobalMessages.properties NewGlobalMessa ...

  8. poj3686The Windy's (KM)

    http://poj.org/problem?id=3686 拆点很巧妙 将每个M个点拆成m*n个点 分别表示第i个玩具在第j个机器上倒数第K个处理 假设这k个玩具真正用在加工的时间分为a1,a2,a ...

  9. 根据block取出space_id

    /*********************************************************************//** Gets the space id of a bl ...

  10. [面试题] for() while() 条件判断 赋值问题

    http://group.jobbole.com/7963/#comm-11311 [题目]:下列for循环的循环体执行次数为 for(int i=10, j=1; i=j=0; i++, j--)( ...