从Delphi到Lazarus——Lazarus编程时可以使用的组件(控件)
0.前言
使用过可视化编程的人都知道在编程时组件的重要性。可以使用的组件越多,编程越方便快捷。
理论上,Delphi中的所有组件在Lazarus中都可以使用。当然,在Windows编程时多数是可以直接使用的,有些需要做适当的修改才能使用。而在Unix或Linux下编程就有些不能使用了,这涉及到操作系统内核的问题。不过,今天讨论的不是操作系统的问题,而是要告诉大家在Lazarus编程时可以使用哪些组件。
在这篇文章里将会介绍以下内容:
- 在Lazarus中创建一个小程序
- 使用Lazarus中已经集成的组件
- 使用Lazarus中没有安装的组件
- 使用网上提供的经过筛选的优秀组件
- 使用网上提供的第三方组件
- 结束语——使用自己的软件包
下面这个链接中有Lazarus团队精选的可以在Lazarus中使用的组件的详细介绍,你有时间可以看一看。
Category:Components - Free Pascal wiki
1.在Lazarus中创建一个小程序
在Lazarus中编写一个小程序的事情在其他文章中已经介绍过了,可能大家也都已经掌握了这个方法,我之所以还要在这里写上这一段,是因为这是下一步的基础。如果你觉得没有必要,可以跳过这一段。
在Lazarus中创建一个小程序的步骤如下:
- 主菜单:文件->新建…,打开[新建]窗口
- 在[新建]窗口中选择[项目->应用程序],然后点击[确定]按钮,一个名为Project1的小程序就已经创建完成了,这个程序只有一个窗体Form1。下图应该就是你在屏幕上看到了样子。
- 点击主菜单中的[运行->运行](或者点击工具栏中那个跟菜单里一样的绿色按钮,或者直接按快捷键F9),你会看到下部的消息栏中出现了正在编译的信息,编译完成后,你的程序就会运行,这时你会看到屏幕上出现了带有熊爪图标的Form1的窗口,这就是你编写的第一个程序Project1的窗口
- 关闭Project1的窗口,结束Project1的运行

2.使用Lazarus中已经集成的组件
你安装了Lazarus后,Lazarus已经安装的组件都在组件面板中(上图中的③),这些组件你可以直接使用。如果你已经通过安装组件形成了一体化的窗口组件列表中同样也会看到这些组件(上图中的④)。
关于Lazarus已经安装了的组件的介绍你可以点击这个链接看到:Lazarus Tutorial/zh CN - Lazarus wiki
使用Lazarus已经安装了的组件的步骤很简单:
- 在组件面板中找到你要使用的组件,点击这个组件,比如Standard中带有ok字样的那个方框,这是按钮TButton
- 点击Form1中你要放置这个组件的地方,你会看到你的组件已经添加到窗体Form1中了,一个名为Button1的按钮
运行你的程序,你会看到运行后的Form1窗口中比上一次多了一个标有Button1的按钮。点击这个按钮,但它什么也没做。要想让这个按钮有用,还需要添加这个按钮的事件处理程序,这是另外一个问题了,这里不再讨论。
3.使用Lazarus中没有安装的组件
安装Lazarus时除了已经出现在组件面板中的组件,还有许多没有安装的组件。这些组件就在你的电脑中安装Lazarus的文件夹下的components文件夹中。
要想使用这些组件,你需要先安装你要使用的组件。操作步骤如下:
- 点击主菜单中的[软件包->安装/卸载软件包…],打开[安装/卸载软件包]窗口
- 在[安装/卸载软件包]窗口的[可用于安装]栏目中选择你要使用的组件所在的软件包,然后点击[安装选中的]
- 点击软件包安装/卸载窗口下边的[保存并重新编译IDE]按钮,按提示完成安装
具体的操作步骤你可以打开以下链接看一下我在另一篇文章中写的[3.安装整合IDE界面的软件包]的步骤,那里面有图文并茂的描述。
从Delphi到Lazarus——安装最新版的Lazarus - lexyao - 博客园
当然,当你选择使用这些组件的时候,你会感到困惑:怎么才能知道这些软件包里有没有我需要的组件呢?哪一个软件包是我需要的组件呢?
对于这个问题,我也没有找到很好的办法,只是发现在components文件夹下每个软件包所在的文件夹中都有一个README.txt文件,里面有这个软件包的简单说明。
你可以在网上百度一下,或许会找到更好的方法。
4.使用网上提供的经过筛选的优秀组件
Lazarus是开源的自由软件,其背后有一个团队为了维护这个软件在默默地付出。这个团队筛选了许多可用于Lazarus的组件的软件包发布在网上,你可以很方便地使用这个组件。
要使用这些组件,你还是需要先安装你需要的组件所在的软件包。安装的步骤如下:
- 点击主菜单中的[软件包->在线软件包管理器…],打开[在线软件包管理器]窗口
- 勾选你要安装的软件包左边的小方框选中这个软件包(下图中的①)
- 点击窗口下边的[安装],然后按提示继续后边的操作
完成以上操作后,等待软件包下载、安装、Lazarus重新编译,直到Lazarus关闭后重新运行,安装工作完成。
需要注意的是,安装的软件包中的组件有的是在组件面板的独立页面中,也有的是添加到已经存在的页面。如果实在找不到,你可以在右边的组件列表的查找中输入软件包中一个组件的名字,就会看到这个组件的所在的分组,也就找到了组件所在的页面。
另外,要想了解软件包的内容,在[在线软件包管理器]窗口中鼠标在一个软件包名字上悬停,会弹出一个窗口,其中有这个软件包的描述。也可以点击软件包前面的(下图中的②),展开隐藏的内容。展开的内容分为两列,你会在左边一列中看到有一项是[描述],这一行对应的右边一列中的内容就是这个软件包的描述(下图中的③),鼠标悬停在这个描述上,会在右边显示初一个有三个点的按钮[…],点击这个按钮也会看到描述的全部内容。
当然,不是所有的软件包中的描述都是完整的。

5.使用网上提供的第三方组件
Lazarus可以使用的组件,除了以上所说的几种情况,还有大量的第三方软件包。这些软件包之所以没有被Lazarus团队选中,可能是以下原因之一,或者其他未知的原因:
- 软件包存在缺陷
- 软件包不支持跨平台编程(包含平台依赖性的代码)
- 这个软件包不是同类中最优秀的
- Lazarus团队还没有认识到这个软件包中组件的重要性或者说优势
- 软件包有版权要求
不管什么原因,只要你能够从网上下载到你的电脑里,你都可以使用。
使用第三方软件包中的组件同样需要先安装软件包。安装的步骤如下:
- 下载第三方软件包的文件到你的电脑里。如果是压缩文件,解压到一个文件夹中
- 点击主菜单[软件包->打开软件包文件(.lpk)…],在你解压的软件包文件夹中找到并选中扩展名为lpk的文件,然后点击[打开]按钮,在弹出的提问窗口中选择[打开软件包],在弹出的[软件包]窗口中你会看到软件包中的文件
- 点击[软件包]窗口中的[使用->安装],然后按提示继续后边的操作
完成以上操作后,等待软件包下载、安装、Lazarus重新编译,直到Lazarus关闭后重新运行,安装工作完成。
需要注意的是,有些第三方软件包存在缺陷、代码错误等问题,需要你自己去发现、修改。你也可以把你发现的问题发送给软件包的开发者,让他修改后发布新版本的软件包。
6.结束语——使用自己的软件包
如果你已经具备了开发软件包的能力,你可以根据自己的需要开发自己的软件包。你开发的软件包可以自己使用,也可以公布到网上让大家共享。
当然,大多数人不是自己开发软件包,而是在现有软件包的基础上做一些改动,添加自己需要的功能。
至于你会怎么做,那要看你个人的能力、爱好、需求了。你说是不是这样啊?
从Delphi到Lazarus——Lazarus编程时可以使用的组件(控件)的更多相关文章
- 五种情况下会刷新控件状态(刷新所有子FWinControls的显示)——从DFM读取数据时、新增加子控件时、重新创建当前控件的句柄时、设置父控件时、显示状态被改变时
五种情况下会刷新控件状态(刷新控件状态才能刷新所有子FWinControls的显示): 在TWinControls.PaintControls中,对所有FWinControls只是重绘了边框,而没有整 ...
- Delphi 操作Flash D7~XE10都有 导入Activex控件 shockwave
http://www.cnblogs.com/devcjq/articles/2906224.html Flash是Macromedia公司出品的,用在互联网上动态的.可互动的shockwave.它的 ...
- delphi 窗体透明详解TransparentColorValue,窗体透明控件不透明
关于窗体透明的做法 来自:http://blog.csdn.net/shuaihj/article/details/8610343 关于窗体透明的做法 1.在Delphi中,设置窗体的AlphaBle ...
- Python笔记_第四篇_高阶编程_GUI编程之Tkinter_2.控件类
1. Label控件: 说明:标签控件,可显示文本 图示1: 实例1: import tkinter # 创建主窗口__编程头部 win = tkinter.Tk() # 设置标题 win.title ...
- .NET组件控件实例编程系列——5.DataGridView数值列和日期列
在使用DataGridView编辑数据的时候,编辑的单元格一般会显示为文本框,逻辑值和图片会自动显示对应类型的列.当然我们自己可以手工选择列的类型,例如ComboBox列.Button列.Link列. ...
- C#导出 Excel 时, 生成 CheckBox 控件
在使用 Microsoft.Office.Interop.Excel 组件导出Excel 表格时,要把导出前的 CheckBox 控件一同导出到 excel 表格中,对于这个功能 看似很简单,但 M ...
- Qt 编程指南 4 单行编辑控件
从 Qt 设计师界面可以看到常用的 Qt 文本编辑和浏览控件,包括四个: 其中单行编辑控件 QLineEdit 和 普通文本编辑控件 QPlainTextEdit 都是针对最普通的 C++ 字符串编辑 ...
- 发现C#winform编程中不常用的控件(一)<FlowLayoutPanel控件><拆分器控件Splitcontainer >
第一部分:FlowLayoutPanel控件 实现效果: 将FlowLayoutPanel做为导航菜单按钮的容器 以实现 某个菜单按钮不显示时 整体的导航菜单布局不至于"缺憾" 原 ...
- Win32编程点滴5 - 响应ActiveX控件的事件
在最近的一篇文章中说到了,如何创建ActiveX,这次我们来响应事件.这次,我们将创建一个类:CGeneralEventSink,它能够响应任何Dispatch事件(事件的接口继承与IDispatch ...
- Win32编程点滴3 - 简单ActiveX控件的使用
虽然这里一片的.net气氛,到处充斥着像MVC.WPF.WorkFlow.LINQ等各种niubility的术语.但我们使用的Windows还是由COM技术主宰着:我们在选择日常使用的软件时,也会避免 ...
随机推荐
- 借助 Flutter 顺畅地开发多平台应用
Flutter 已于近期发布了 Flutter 2,Flutter 和 Dart 的产品总监 Tim Sneath 在 2021 年三月上旬举办的 Flutter Engage 活动中表示,Flutt ...
- Java如何解决同时出库入库订单号自动获取问题
在Java中处理同时出库和入库的订单号自动获取问题,通常涉及到多线程环境下的并发控制.为了确保订单号的唯一性和连续性,我们可以使用多种策略,如数据库的自增ID.分布式锁.或者利用Java的并发工具类如 ...
- map,unordered_map,multimap,unordered_multimap
std::map(有序映射) std::unordered_map(无序映射) std::multimap(有序多重映射) std::unordered_multimap(无序多重映射) 它们的使用方 ...
- window使用VNC远程ubuntu16.04
首先保证在同一局域网下 一.设置Ubuntu 16.04 允许进行远程控制 首先在ubuntu下找到下图图标 将[允许其他人查看您的桌面]这一项勾上,然后在安全那项,勾选[要求远程用户输入此密码],并 ...
- C# 的显示转换 *.Parse(string) Convert.ToInt32(double value)
// 显式转换 (类型) /// (int)表示使用强制的显示转换,是一种类型转换,C#默认的整形是 int32 , /// 因此使用此方法转成int32 不遵循四舍五入,直截取整数部分 /// (i ...
- 怎么理解vue的单向数据流
单向数据流是父组件传给子组件的数据,子组件没有权利修改,只能委托父组件修改,然后子组件更新
- 60 .vue的生命周期和小程序的生命周期区别
https://blog.csdn.net/weixin_43359799/article/details/123137288
- 洛谷P1381单词背诵
单词背诵 题目描述 灵梦有 \(n\) 个单词想要背,但她想通过一篇文章中的一段来记住这些单词. 文章由 \(m\) 个单词构成,她想在文章中找出连续的一段,其中包含最多的她想要背的单词(重复的只算一 ...
- CSP模拟10--总结
今天是我第一次给模拟赛写正规总结--因为今天的题真的受不了了 四道数学题,一点都不拖泥带水的纯血数学题! T1.黑暗型高松灯 shit 本来是一道放在T4防AK的题,结果学长为了 恶心 锻炼一下我们, ...
- 使用 KubeEye 为你的 K8s 集群安全保驾护航
作者:KaliArch(薛磊),某Cloud MSP服务商产品负责人,熟悉企业级高可用/高并发架构,包括混合云架构.异地灾,熟练企业DevOPS改造优化,熟悉Shell/Python/Go等开发语言, ...