lazarus创建自定义组件,方便有一堆标准控件有相同或相似操作,建个新组件,这样用的时候只要继承一下,就不用再重复代码了。
参考文章 Delphi自定义控件开发
lazarus里新建组件菜单在 顶层菜单 软件包下
比如我想新建个继承之tstatictext控件的TURLLabel,就新建URLLabel.pas文件,unit单元名也是URLLabel,类里几个作用域简单说明一下
- private 类内访问
- protected 类内访问,可用于组件的覆盖方法
- public 可类内外访问,运行时可访问,可用于组件的新方法
- published 可类内外访问,设计时可访问,可用于组件的属性
组件可用于工程内或安装到lazarus,显示到组件面板方便其他任何工程使用
register方法确定了显示的新组件名和新分组名,如果工程庞大,可能一个分组放一堆新组件
下面是我实现的一个简单组件,新增了2个属性browse存放操作系统浏览器,url存放一个网址,继承重写了click方法,假如url不为空,点击即可用浏览器打开一个网址
还重写了mouseleave和mouseenter,在鼠标移动到组件上和离开组件变化一下组件背景色和边框,本来一个效果就可以,发现window和linux分别只能看到一个效果,那就写2个效果,这样2个操作系统就能都有效果
unit URLLabel;
{$mode ObjFPC}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs,StdCtrls,Process;
type
TURLLabel = clas

本文介绍了如何在Lazarus中创建一个自定义组件TURLLabel,它继承自TStaticText,添加了新的属性和行为,如浏览器浏览功能和操作系统特定的鼠标事件处理。组件通过注册和编译安装到Lazarus,以便跨平台使用。
最低0.47元/天 解锁文章
5356

被折叠的 条评论
为什么被折叠?



