TWindowState = (wsNormal, wsMinimized, wsMaximized);  

TScrollingWinControl = class(TWinControl)
private
FHorzScrollBar: TControlScrollBar;
FVertScrollBar: TControlScrollBar;
FAutoScroll: Boolean;
FAutoRangeCount: Integer;
FUpdatingScrollBars: Boolean;
procedure CalcAutoRange;
procedure ScaleScrollBars(M, D: Integer);
procedure SetAutoScroll(Value: Boolean);
procedure SetHorzScrollBar(Value: TControlScrollBar);
procedure SetVertScrollBar(Value: TControlScrollBar);
procedure UpdateScrollBars;
procedure WMSize(var Message: TWMSize); message WM_SIZE;
procedure WMHScroll(var Message: TWMHScroll); message WM_HSCROLL;
procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL;
procedure CMBiDiModeChanged(var Message: TMessage); message CM_BIDIMODECHANGED;
protected
procedure AdjustClientRect(var Rect: TRect); override;
procedure AlignControls(AControl: TControl; var ARect: TRect); override;
function AutoScrollEnabled: Boolean; virtual;
procedure AutoScrollInView(AControl: TControl); virtual;
procedure ChangeScale(M, D: Integer); override;
procedure CreateParams(var Params: TCreateParams); override;
procedure CreateWnd; override;
procedure DoFlipChildren; override;
//此处所定义的就是 delphi 中object inspector 中的对象属性所显示的内容  TControlScrollBar类型, 读取FHorzScrollBar 通过SetHorzScrollBar写入
property HorzScrollBar: TControlScrollBar read FHorzScrollBar write SetHorzScrollBar;
property VertScrollBar: TControlScrollBar read FVertScrollBar write SetVertScrollBar;
end;

上面是系统定义的,比较枯燥,下面是自己写的代码:

unit Unit1;  

interface  

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls; type
TForm1 = class(TForm)
btn1: TButton;
edt1: TEdit;
procedure FormCreate(Sender: TObject); //窗体创建事件
procedure btn1Click(Sender: TObject); //butten 点击事件
private
public
//自己写的过程 显示位置
procedure OnTestPostionChange(Sender: TObject; Positon: Integer);
end; // 类似于函数指针 of object 它必须指向某个对象的方法(即成员函数).
TTestEvent = procedure (Sender: TObject; Positon: Integer) of Object; TTestClass = class(TObject)
private
FPosition: Integer; // Position 属性用的
FOnPositionChange: TTestEvent; // OnPositionChange 属性
procedure SetPosition(const Value: Integer);
protected
procedure DoPositonChange;
// procedure doaaa: dynamic;
public
//属性 position 读取FPosition 写到SetPosition integer 类型
property Position: Integer read FPosition write SetPosition;
//属性 onPositionChange 对象过程函数指针类型 读取FOnposition 写入 FOnPositionChange
property OnPositionChange: TTestEvent read FOnPositionChange write FOnPositionChange;
end; var
Form1: TForm1;
test1: TTestClass; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject);
begin
test1 := TTestClass.Create;
test1.OnPositionChange := OnTestPostionChange;
end; { TTestClass } procedure TTestClass.DoPositonChange;
begin
if Assigned(FOnPositionChange) then
FOnPositionChange(Self,FPosition);
end; procedure TTestClass.SetPosition(const Value: Integer);
begin
if Value <> FPosition then
begin
FPosition := Value;
DoPositonChange;
end;
end; procedure TForm1.btn1Click(Sender: TObject);
begin
test1.Position := StrToInt(edt1.Text);
end; procedure TForm1.OnTestPostionChange(Sender: TObject; Positon: Integer);
begin
showmessage('Postion = '+IntToStr(Positon));
end; end.

执行过程就是:窗体创建(给OnPositionChange赋值)--点击button(读取edt1中的值)---之后调用setposition(也许这就是绑定好的了吧)----DOPositionchange----执行FOnPositionChange(也就是OnTestPostionChange)。。。

delphi 事件和属性的绑定的更多相关文章

  1. DELPHI控件属性事件说明

    常用DELPHI控件属性事件设置说明 常用DELPHI控件属性设置说明目录TForm Class TPanel组件 TToolBar Class TToolButton Class TTimer Cl ...

  2. [转]Delphi 控件属性和事件

    常用[属性] Action:该属性是与组件关联的行为,允许应用程序集中响应用户命令 Anchors:与组件连接的窗体的位置点 Align:确定组件的对齐方式 AutoSize:确定组件是否自动调整其大 ...

  3. WPF UserControl 的绑定事件、属性、附加属性

    原文:WPF UserControl 的绑定事件.属性.附加属性 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Vblegend_2013/arti ...

  4. jQuery-介绍 加载 选择器 样式操作 属性操作 绑定click事件

    jQuery - 介绍 加载 选择器 样式操作 属性操作 绑定click事件 注意:以下部分问题不能实现效果,因该是单词拼写错误(少个t)或者没有加引号(“swing”)... jquery介绍 jQ ...

  5. delphi控件属性大全-详解-简介

    http://blog.csdn.net/u011096030/article/details/18716713 button 组件: CAPTION 属性 :用于在按钮上显示文本内容 Cancel ...

  6. JavaScript 中的window.event代表的是事件的状态,jquery事件对象属性,jquery中如何使用event.target

    http://wenda.haosou.com/q/1373868839069215 http://kylines.iteye.com/blog/1660236 http://www.cnblogs. ...

  7. wpf依赖属性、绑定实现原理、附加属性学习

    依赖属性和普通属性相比节省内存的原因:对于普通属性,每个对象有需要存储一个普通属性的值,即便是默认值.而依赖属性的默认值是静态的存储在类中的,所有对象都使用同一默认值,所以对于拥有大量属性的控件来说这 ...

  8. (转载)Delphi StringGrid常用属性和常用操作

    Delphi StringGrid常用属性和常用操作 StringGrid组件用于建立显示字符串的网格,与电子表格相似.它可使表格中的字符串和相关对象操作简单化.StringGrid组件提供了许多可控 ...

  9. 最新iOS 6 in Xcode4.5新特性——Storyboard和属性自动绑定

    最新iOS 6 in Xcode4.5新特性编程之二(上)——Storyboard和属性自动绑定 从Xcode 4.3开始,Storyboard 就是iOS 5和iOS 6中令人兴奋的一个新特性,他将 ...

随机推荐

  1. Supplemental Logging

    Supplemental Logging分为两种:Database-Level Supplemental Logging和Table-Level Supplemental Logging,即数据库级别 ...

  2. backbone库学习-Collection

    backbone库的结构: http://www.cnblogs.com/nuysoft/archive/2012/03/19/2404274.html 本文所有例子来自于http://blog.cs ...

  3. Windows编程中UNICODE和_UNICODE定义问题

    Windows编程中UNICODE和_UNICODE定义问题 先转一篇文章: 初学Windows SDK编程时碰到过这个问题,相信很多初学Windows编程的人也都碰到过,后来慢慢搞明白些了,但有时别 ...

  4. UML类图学习

    在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composit ...

  5. get与post需要注意的几点

    在面试或者笔试时,经常会被问到 HTTP 方法中 get 和 post 的异同点.本文简单整理归纳了一下,以备忘. 1."get/post" VS "web 中的 get ...

  6. 【Android】Android Studio 进行代码混淆,打包release APK

    整了一天,感觉坑挺多. 1. 选择如图中的选项Android Studio进行签名打包: 2. 填写APP对应的信息:(最好用个文本记下来放在项目中同步给Team) - Key store path: ...

  7. 【Android】Volley做网络请求的几种用法

    前言: 最近在将自己写的烂代码重构,以前使用的网络请求全是基于apache的HttpClient,简单使用还好,使用多了发现重复代码太多,而且每次使用都很繁琐,因此在网上找了半天网络请求的相关类库,最 ...

  8. Math.ceil(a/b)结果出错--原因是a和b不是double

    脑袋短路.连续测试几次发现Math.ceil(188/20)==9; 忍无可忍,突然发现是int问题,顺着表达式走一遍,188/20==9,然后再向上取整.脑袋僵化了.看来一直做简单的不动脑筋的工作, ...

  9. JS魔法堂:jQuery.Deferred(jQuery1.5-2.1)源码剖析

    一.前言 jQuery.Deferred作为1.5的新特性出现在jQuery上,而jQuery.ajax函数也做了相应的调整.因此我们能如下的使用xhr请求调用,并实现事件处理函数晚绑定. var p ...

  10. JAVA - IDEA快捷键(精简版)

    快捷键 功能 Ctrl + Alt + V 对应eclipse ctrl + l + 2 自动补全 Ctrl + Alt + L 对应eclipse ctrl + shift + o 代码格式化 Ct ...