从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技术主宰着:我们在选择日常使用的软件时,也会避免 ...
随机推荐
- BOOST 环形队列circular_buffer
BOOST库的环形队列比较灵活,前插或后插,删除队首或删除队尾元素,都支持. 只贴代码: #include <boost/circular_buffer.hpp> #include < ...
- template fastread
昨天梦到一种快读,你给他传多少参,他就读多少数 今天学了折叠表达式和隐式转换,现在来把这玩意实现一下 特化函数 void read(int) 读入一个整数 void read(char&[], ...
- [TK] 颜色
谴责这道题发明在线莫队的人,简直就是异端,还好我给在线莫队卡了,支持正义制裁 题意简述 给定序列,设 \(f(l,r,x)\) 表示 \(x\) 在 \([l,r]\) 内的出现次数,对给定 \(l, ...
- RedisTemplate设置的key,redis客户端取不到
原因:RedisTemplate 在set key时,key被序列化 解决办法1: import org.springframework.context.annotation.Bean; import ...
- 【赵渝强老师】阿里云大数据ACP认证之阿里大数据产品体系
阿里大数据产品体系是基于阿里云飞天平台上的数据处理服务.主要分为阿里云大数据基础产品和阿里云数加平台,其产品架构图如下所示: 一.阿里云大数据基础产品 1.云数据库--RDS(ApsaraDB for ...
- 【赵渝强老师】在Spark SQL中读取JSON文件
Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用.为什么要学习Spark SQL?如果大家了解Hive的话,应该 ...
- 全网最适合入门的面向对象编程教程:54 Python字符串与序列化-字符串格式化与format方法
全网最适合入门的面向对象编程教程:54 Python 字符串与序列化-字符串格式化与 format 方法 摘要: 在 Python 中,字符串格式化是将变量插入到字符串中的一种方式,Python 提供 ...
- push_back和 emplace_back背后的逻辑
push_back 与 emplace_back 的区别 push_back: 功能:将一个对象(或其副本)添加到 vector 的末尾. 参数:接受一个对象(或其副本)的引用. 过程: 如果传入的是 ...
- Windows 10 LTSC 2019(1809) WSL 安装 CentOS 7
1.安装WSL 通过控制面板--程序和功能--启用或关闭WIndows功能,勾选"适用于Linux的Windows子系统". 或者通过管理员权限打开 PowerShel ...
- CNN归纳偏好
出处:Transformer为何能闯入CV界秒杀CNN? CNN 中的卷积运算由于使用了两个重要的空间约束,从而有助于视觉特征的学习和提取: 由于 CNN 权重共享机制,卷积层所提取的特征便具有平移不 ...