Delphi中Interface接口的使用方法

Java JNI 和 Delphi 相互調用(1)-JAVA調用DELPHI JNI 不是什麼新技術,英文全稱是:Java Native Interface,JAVA本地化代碼接口。本地化代碼是指直接編譯成的與機器相關的二進制代碼,而不是Java字節碼之類的中間代碼。對於 JNI 的來龍去脈,不作介紹了,在 java.sun.com 有介紹,另外 BAIDU/GOOGLE 搜索,也有大把的。這裏僅僅做一個入門級的介紹和實現。JAVA發佈的是C/C++的接口文檔,DELPHI 阅读详情

 

unit Unit1;
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
   //定义接口如果接口独立成一个文件,则在应用程序中和实现程序中都要引用该接口文件;
    ICar = interface (IInterface)
        ['{ED52E264-6683-11D7-B847-001060806215}']
        procedure drive;
    end;
 
//接口实现类1,一定要加入TinterfacedObject才能使用;
    TCar = class(TInterfacedObject,ICar)
    public
        procedure drive;
    end;
//接口实现类2,一定要加入TinterfacedObject才能使用;
    THouseCar = class(TInterfacedObject,ICar)
    public
        procedure drive;
    end;
 
 TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
 private
    { Private declarations }
 public
    { Public declarations }
    function getCar:ICar; //此处可用别的方式来实现获取ICAR,如放在DLL文件中;
 end;
 
var
 Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
{ TCar }
procedure TCar.drive;
begin
 ShowMessage('TCar.drive');
end;
 
{ THouseCar }
procedure THouseCar.drive;
begin
   ShowMessage('THouseCar.drive');
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
 s:ICar;
begin
 s:= getCar;
 s.drive;
end;
 
function TForm1.getCar:ICar;
begin
   Result:=THouseCar.Create; //此处为整个实现的关键点;
//Result:=TCar.Create;
end;
 
end.

 

自己管理对象生命周期中Delphi接口的一个问题 DelphiInterface机制来自于COM,使用接口的对象,Delphi缺省采用引用计数对生命周期进行管理。 如果不希望Delphi来自动管理对象生命周期,我们可以将包含接口的对象继承自下面的对象(TIntObject) type   TIntObject=class(TObject, IUnknown)     function QueryInterface(const IID: 阅读详情

相关推荐

保姆级教程:用Docker快速部署mpromonet/webrtc-streamer实现WebRTC直播(附常见问题解决)

本文提供了一份详细的Docker部署mpromonet/webrtc-streamer的实战指南,帮助用户快速搭建WebRTC直播服务。内容涵盖从环境准备、基础部署到进阶配置与性能调优的全过程,并针对容器网络、视频流配置、跨网访问等常见问题提供了解决方案,旨在实现低延迟的流媒体传输。

dell8的博客 141

Delphi 基础知识 44】接口interface的应用

总结为一句话就是:接口只告诉你要做什么,而类会告诉你应该怎么做下面是最简单的接口实现type['{08FA1638-75C2-4B93-B9C3-5D585FC831ED}'] // CTRL+SHIFT+G IDE会自动生成end;// TInterfacedObject负责接口管理,引用计数等,一般都会有它// IMyInterface上面定义的接口,表明这个类就是要实现该接口的功能publicend;beginend;

记录日常技术经验 624

手把手教你用ADIsimCLK和GUI搞定HMC7044时钟配置(附避坑指南)

本文详细解析了HMC7044时钟芯片的配置方法,通过ADIsimCLK和HMC7044 Configuration GUI工具,从频率规划到硬件验证全流程实战演示。特别针对PLL模式选择、分频链配置等易错环节,提供量产验证的配置模板和实测数据,帮助工程师快速掌握高性能时钟解决方案。

weixin_30755393的博客 757

delphi 接口

学习 delphi 接口 一切都是纸老虎!!! 第四章          接口  前不久,有位搞软件的朋友给我出了个谜语。谜面是“相亲”,让我猜一软件术语。我大约想了一分钟,猜 出谜底是“面向对象”。我觉得挺有趣,灵机一动想了一个谜语回敬他。谜面是“吻”,也让他猜一软件术 语。一分钟之后,他风趣地说:“你在面向你美丽的对象时,当然忍不住要和她接口!”。我们同时哈哈大 笑起来。谈笑间,似

流年~~ 1万+

delphi interface 总结

1、 interface 是申明了一些函数,自己本身没有定义部分,需要由继承它的类来实现函数。 2、interface 可以被不同的类继承,并且函数的实现方法各不相同。 3、继承interface 的类,必须包含全部interface的函数,否则无法编译通过。

hust平凡之路 的博客 6115

Delphi程序员代码编写标准指南

Delphi 4 程序员代码编写标准指南版权所有 1998 Xavier Perched和 Steve Teiseira一、序言二、通用源代码格式规则2.1 缩格2.2 页边空格2.3 Begin…End 配对三、Object Pascal3.1 括号3.2 保留字和关键字3.3 过程和函数(例程)    3.3.1 命名/格式化    3.3.2 形式参数        3.3.2.1 格式

Icebird的专栏 1399

[Delphi]接口认识

Delphi中的接口interface 进行声明。接口是针对行为方法的描述,而不管他实现这种行为方法的是对象还是别的什么东西。因此,接口和类的出发点是不一样的,是在不同的角度看问题。 接口通过GUID进行唯一标识。(Delphi IDE中按Ctrl+Shift+G 产生GUID) 高版本的Delphi已经用IInterface 进行统一接口的定义(不知道从哪个版本开始)。 IInterf...

weixin_30662539的博客 152

Delphiinterface 如何使用 (chatGPT回答)?

本文详细介绍了Delphi中的Interface实现方式

sensor_WU 博客 714

delphi java jni 互通_转:Java JNI 和 Delphi 相互調用(1)-JAVA調用DELPHI

JNI 不是什麼新技術,英文全稱是:Java Native Interface,JAVA本地化代碼接口。本地化代碼是指直接編譯成的與機器相關的二進制代碼,而不是Java字節碼之類的中間代碼。對於 JNI 的來龍去脈,不作介紹了,在 java.sun.com 有介紹,另外 BAIDU/GOOGLE 搜索,也有大把的。這裏僅僅做一個入門級的介紹和實現。JAVA發佈的是C/C++的接口文檔,DELPHI...

weixin_39639643的博客 188

Advanced Interface Volume1 – Data Transfer Kit

Advanced Interface Volume1 – Data Transfer Kit       文/黃忠成 code6421@pchome.com.tw   Interface Again!! Now What??      在完成淺談InterfaceInterface Designing 兩篇文章後,我心中一直有著寫續篇的念 頭,無奈礙於時間與主題的限制,遲...

weixin_34248705的博客 174

接口与类的区别

郁闷,一提交全没了提交一篇‘靠’,居然就成功了,火大阿重新翻译了只好,当作温习了来自Delphi Help,关键字Interface types: overview接口和类一样,只能在程序或单元的最外层被声明(也就是interface section,也就是全局可见的),不能在过程或函数中声明。接口类型的声明格式如下:type interfaceName = interface (ancest

imustworkhard的专栏 1206

AndroidTool 2.35中文版发布包

资源下载链接为:https://pan.quark.cn/s/1bfadf00ae14AndroidTool_Release_v2.35-中文版.zip 是一款专门针对安卓设备(尤其是采用 R3288 主板的设备)设计的固件刷新工具。该压缩包内含一系列程序和资源,用于更新或修复安卓设备的固件,帮助用户自行解决设备软件问题或提升性能。以下是关于此工具及其相关知识点的说明:固件刷新:固件是硬件设备中嵌入的操作系统、驱动程序和应用程序的集合,负责控制设备的基本功能。刷新固件即替换或升级现有固件,通常用于修复错误、添加新功能或提升性能。R3288 主板:R3288 是一种特定型号的安卓设备主板,可能被应用于多种品牌和型号的手机或平板电脑。主板是设备的核心部件,承载处理、内存、网络等关键组件,固件刷新对这类主板的优化非常重要。固件刷新过程:通常需要先下载对应设备的固件文件,然后使用专用工具(如 AndroidTool)将固件刷入设备。此过程可能需要进入设备的恢复模式或 fastboot 模式,且操作需谨慎,错误操作可能导致设备变砖。AndroidTool:这是一款常用的安卓设备管理及固件刷新工具,支持多种安卓设备的固件更新、备份和恢复等功能。它提供用户友好的界面,简化了固件操作流程,降低了普通用户进行此类操作的难度。版本号 v2.35:表示这是 AndroidTool 的第 2.35 版本,意味着开发者已对其进行了多次迭代和改进,增加了新功能并修复了已知问题。中文版则表明该工具支持中文界面,方便中国用户使用。风险与注意事项:固件刷新存在一定风险,可能导致数据丢失,因此在刷新前必须备份重要数据。此外,使用不匹配的固件或操作不当可能会损坏设备,所以在刷新前应确保了解设备的具体型号和适用固件。安全与合规:刷新固件可能涉及解锁设备的 Bootloader,这可能会影响设备

上一篇: delphi中临界操作方法
下一篇: 利用存储过程实现数据分页
delphi1234
博客等级 码龄24年 37粉丝 52原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值