Controls 属性与继承 TShape 类的小练习
代码文件:
unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, ExtCtrls;typeTMyShape = class(TShape)protectedprocedure CMMouseenter(var Message: TMessage); message CM_MOUSEENTER;procedure CMMouseleave(var Message: TMessage); message CM_MOUSELEAVE;end;TForm1 = class(TForm)Panel1: TPanel;Button1: TButton;Button2: TButton;procedure Button1Click(Sender: TObject);procedure Button2Click(Sender: TObject);end;varForm1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject); constW = 50;H = 50; varshape: TMyShape; beginshape := TMyShape.Create(Self);shape.Parent := Panel1;shape.Width := W;shape.Height := H;Randomize;shape.Left := Random(Panel1.ClientWidth - W);shape.Top := Random(Panel1.ClientHeight - H);shape.Brush.Color := Random($FFFFFF); end;procedure TForm1.Button2Click(Sender: TObject); vari: Integer; beginif Panel1.ControlCount = 0 then Exit;Randomize;i := Random(Panel1.ControlCount - 1);Panel1.Controls[i].Free; end;{ TMyShape }procedure TMyShape.CMMouseenter(var Message: TMessage); consts = '当前 %s 的颜色值是: %.6x'; varWCtrl: TWinControl; beginWCtrl := Parent;while WCtrl.HasParent do WCtrl := WCtrl.Parent;if WCtrl is TForm then TForm(WCtrl).Caption := Format(s, [ClassName,Brush.Color]);inherited; end;procedure TMyShape.CMMouseleave(var Message: TMessage); consts = 'Form1'; varWCtrl: TWinControl; beginWCtrl := Parent;while WCtrl.HasParent do WCtrl := WCtrl.Parent;if WCtrl is TForm then TForm(WCtrl).Caption := s;inherited; end;end.
窗体文件:
object Form1: TForm1Left = 0Top = 0Caption = 'Form1'ClientHeight = 212ClientWidth = 395Color = clBtnFaceFont.Charset = DEFAULT_CHARSETFont.Color = clWindowTextFont.Height = -11Font.Name = 'Tahoma'Font.Style = []OldCreateOrder = FalsePixelsPerInch = 96TextHeight = 13object Panel1: TPanelLeft = 8Top = 8Width = 297Height = 193Caption = 'Panel1'TabOrder = 0endobject Button1: TButtonLeft = 311Top = 40Width = 75Height = 25Caption = #28155#21152TabOrder = 1OnClick = Button1Clickendobject Button2: TButtonLeft = 311Top = 85Width = 75Height = 25Caption = #38543#26426#21024#38500TabOrder = 2OnClick = Button2Clickend end
转载于:https://www.cnblogs.com/del/archive/2008/10/23/1317926.html
Controls 属性与继承 TShape 类的小练习相关推荐
- class传参 python_Python类的概念、定义、属性、继承
1.面向对象(Object Oriented,OO)概念 面向对象,是我们编程的一种思维. 早期的计算机编程是基于面向过程的方法,例如实现算术运算1+1+2 = 4,通过设计一个算法就可以解决当时的问 ...
- php函数、类和对象以及类的封装、继承、类的静态方法、静态属性
php函数.类和对象以及类的封装.继承.类的静态方法.静态属性 原文:php函数.类和对象以及类的封装.继承.类的静态方法.静态属性 1.函数 php内置函数可以直接使用,如果没有安装php扩展即可 ...
- python2筑基-(封装/继承/多态/类属性)
继承 单继承 """""" """ 在对象中,有种关系叫做父子关系 继承--子类拥有父类中定义的属性,函数语法 ...
- 传智播客python笔记_python传智播客笔记--第十天:隐藏属性,私有属性,私有方法,__del__方法,类的继承,类中方法的重写...
封装,继承,多态 隐藏属性,私有属性,私有方法,__del__方法,类的继承,类中方法的重写 -**************************************************** ...
- 27、Python 面向对象(创建类、创建实例对象、访问属性、内置类属性、对象销毁、类的继承、方法重写、基础重载方法、运算符重载、类属性与方法、下划线双下划线)
27Python面向对象(Python2) Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. ...
- python查询模块所有类_python 小技巧(import模块、查询类继承关系、安装包)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在这里列举一些我使用Python时积累的小技巧.这些技巧是我在使用Python过程 ...
- python完全支持面向对象编程思想_面向对象的编程思想和Python的类,访问和属性,继承...
本文将从访问限制,属性,继承,方法重写这几个方面继续介绍面向对象的编程思想和Python类的继承. 复制代码 一.访问权限: Python中在类的内部定义属性和方法,在类的外部是可以直接调用或进行访问 ...
- Python OOP:继承、单继承、多继承、__mro__、子类重写父类同名属性和方法、子类调用父类同名属性和方法、多层继承、super()、私有(实例)属性和方法、获取修改私有属性值、私有类属性
一.继承 Python⾯向对象的继承指的是多个类之间的所属关系,即⼦类默认继承⽗类的所有属性和⽅法. 继承作用:继承可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展. 在P ...
- python 类和对象_面向对象的编程思想和Python的类,访问和属性,继承
面向对象的编程思想和Python的类,类的方法和属性,实例方法这一文从面向对象的角度,介绍类的定义,类的属性和自定义方法. 本文将从访问限制,属性,继承,方法重写这几个方面继续介绍面向对象的编程思想和 ...
最新文章
- SegmentFault Hackathon 2018 火热登场,Let's hack!
- 分析Kotlin协程只挂起不恢复会怎样(是否存在协程泄漏),以及挂起的协程存在哪里?
- 鸿蒙开发-基础组件介绍及chart组件使用
- 视频+PPT | 企业服务进阶第一课:客户全生命周期运营总览
- Transition 实现轮播图
- 使用python将excel数据导入数据库
- linux限制组访问权限,linux用户和组管理以及文件权限访问控制ACL策略
- 在创建maven项目时出现: GC overhead limit exceeded 问题
- nginx相关概念——负载均衡和动静分离
- 从 RequireJS 到 SeaJS(3)
- Lucene中的各种consumer
- BT656与BT1120的区别
- 报表工具能实现怎么的导出效果?
- 职业规划-服务器运维工程师(待完善)
- 联想服务器安装系统鼠标失灵,ThinkPad自行安装操作系统后键盘鼠标失灵怎么办...
- 推荐一本好书《 Java程序员 上班那点事儿》
- 手机最快的网络服务器,手机网速最快的dns地址
- 自定义view仿写今日头条点赞动画
- python中关于Process finished with exit code -1073740791 (0xC0000409)的解决办法
- 21届实习腾讯面试的经验贴(已凉)
热门文章
- python中的位置怎么看_如何知道项目在Python有序字典中的位置
- socket连接时间太长受什么原因影响?_真全粮多功能酿酒设备-酿酒发酵前期为什么要通风处理?...
- Docker Centos 7.X部署Mysql并修改编码
- html辅助方法以及常用属性值,工作总结 @Html 辅助方法 为 生成的 标签设置元素属性 htmlAttributes 一个对象,其中包含要为该元素设置的 HTML 特性。...
- php生成首页 教程,简单静态页生成 过程_PHP教程
- dvd管理器java_Java DVD管理器 基础示例代码下载
- phpsocket服务端和VC客户端通信实例
- c语言中malloc、realloc与calloc 的区别以及联系
- 第十一届河南省赛--H : Attack City and Capture Territory
- ashx 跨域_ASP.NET通用HTTP处理程序(ashx的),支持JSONP