文档章节

Delphi 的接口(4) - 接口的属性

涂孟超
 涂孟超
发布于 2014/09/26 15:38
字数 195
阅读 3
收藏 0

代码文件:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  end;

  {此接口声明了一个 Name 属性; 因为接口没有字段, read/write 都只能从方法}
  IMyInterface = interface
    function GetName : string;
    procedure SetName(val : string);
    property Name : string read GetName write SetName;
  end;

  {类实现的是接口的读写方法, 属性还是属于接口的; 类可以提供一个储存属性的字段}
  TMyClass = class(TInterfacedObject, IMyInterface)
  private
    FName: string;
  public
    function GetName: string;
    procedure SetName(val: string);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TMyClass }

function TMyClass.GetName: string;
begin
  Result := FName;
end;

procedure TMyClass.SetName(val: string);
begin
  FName := val;
end;

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
var
  c: TMyClass;
  i: IMyInterface;
begin
  c := TMyClass.Create;
  i := c;
  i.Name := 'ABC';
  ShowMessage(i.Name); {ABC}

  //没有一个 c.Name 存在, 这个属性只属于接口
end;

end.

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2009/06/05/1496786.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
Delphi调用 C# 写的webservice

Delphi调用 C# webservice总结 用delphi的THTTPRIO控件调用了c#写的webservice。 下面是我调试时遇到的一些问题: 1:导入wsdl文件:file--new----other----webservice---WSDLimporter---输入...

vga
2014/11/25
0
0
关于delphi Com+调用C# DLL的一点说明[转]

最近公司进行产品改造,由于存在部分代码是用delphi写的Com+需要调用C#写的Dll方法,经过网上一些搜索和摸索,调用已经OK。但是至于两者之间的事务问题还需要用到的朋友深入研究。 现在来说一...

老朱教授
2017/08/27
0
0
delphi中使用词霸2005的动态库XdictGrb.dll实现屏幕取词

近日来,在网上发现关于屏幕取词技术的捷径,搜索很长时间,发现实现方式以VB出现的居多,但是通过Delphi来实现的却好象没有看到,自己参考着VB的相关代码琢磨了一下通过delphi来实现的方式。...

技术小美
2017/11/12
0
0
delphi开发activex控件的心得

delphi开发activex控件 2009-01-12 12:18:01| 分类: delphi | 标签: |举报 |字号大中小 订阅 用Delphi开发OCX的心得 最近在做的一个B/S系统要在客户端读取USB锁的要求,所以就需要写一个O...

vga
2014/02/27
0
0
用delphi的THTTPRIO控件调用c#写的webservice。

用delphi的THTTPRIO控件调用c#写的webservice 下面是我调试时遇到的一些问题: 1,导入wsdl文件:file--new----other----wenservice---WSDLimporter---输入wsdl地址:如下:http://10.0.1.128:...

vga
2014/11/25
0
3

没有更多内容

加载失败,请刷新页面

加载更多

下一页

java并发备忘

不安全的“先检查后执行”,代码形式如下: if(条件满足){ //这里容易出现线程安全问题//doSomething}else{//doOther} 读取-修改-写入 原子操作:使用CAS技术,即首先从V中读取...

Funcy1122
今天
0
0
SpringBoot2.0 停机

最近新建了个SpringBoot2.0的项目,因为原来一直使用的是传统的Tomcat部署war包的形式,所以这次SpringBoot内置Tomcat部署jar包的时候遇到了很多问题。其中一个就是因为没有外置的Tomcat容器...

Canaan_
昨天
0
1
Confluence 6 外部参考

一个外部参考的意思是任何站点链接到你 Confluence 的实例。任何时候当 Confluence 的用户单击这个外部链接的时候,Confluence 可以记录这次单击为参考。 在默认的情况下,外部链接的参考链接...

honeymose
昨天
0
0
Android中的设计模式之抽象工厂模式

参考 《设计模式解析》 第十一章 Abstract Factory模式 《设计模式:可复用面向对象软件的基础 》3.1 Abstract Factory 抽象工厂 对象创建型模式 《Android源码设计模式解析与实战》第6章 创...

newtrek
昨天
0
0
Redis | 地理空间(GEO)的一个坑

Redis的地理空间(Geo)是个好东西,轻轻松松的就可以把地图描点的问题处理了, 最近却遇到一个坑...Redis采用的Msater-Slave模式, 运用GEORADIUS在salve读取对应的数据,新增了从节点但是从不返...

云迹
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部