从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技术主宰着:我们在选择日常使用的软件时,也会避免 ...
随机推荐
- 使用Minio Clinet将老版本Minio的数据迁移到新版本的Minio
1. 关于Minio Client: MinIO Client是一个命令行工具,用于与Minio或云存储服务进行交互.它支持文件系统和Amazon S3兼容的云存储服务(AWS Signature v ...
- Windows 调试工具课程
本文是我在集团内部上的课程记录而成的博客内容.在本次课程里面将和大家介绍一些在 Windows 上常用的调试工具,以及调查问题的常见套路.适合于伙伴们入门 Windows 调试 本文以下内容是采用原本 ...
- C++ char*类型与vector类型的相互转换
char*类型与vector<char> 类型的相互转换 很多时候需要使用动态的字符串,但是char*难以完成相应的扩容操作,而动态数组vector则可以简单地完成,结合二者特性就可以完成 ...
- 线段树can you answer these queries-------hdu4027
问题描述: 给定一个数列,要求对指定区间内所有数开方,输出查询区间和 输入: 有很多个测试用例,每个用例第一行输出一个整数N,表示数列有N个数,1<=N<=100000;第二行输入N个整数 ...
- 一些rand()的测试
rand()生成的伪随机数已经足够我们实用,为了跟好的理解rand()跟seed的关系,做了一些测试! rand()函数种子默认为1,在每一次程序运行中,随机数相同,在一次运行中,可将生成数看做随机 ...
- PHP面试,ES
什么是Elasticsearch? Elasticsearch是一个开源的分布式搜索和分析引擎,用于存储.搜索和分析大量数据.它基于Lucene搜索引擎构建,可以快速地执行全文搜索.结构化查询.分析和 ...
- Android系统之System Server大纲
前言 System Server是android 基本服务的提供者,是android系统运行的最基本需求,所有server运行在一个叫system_process的进程中,system_process ...
- 什么是SQL注入并解决
' or ' 1 ' = ' 1 原理:通过违规的字符串改变原来的SQL语句 :[将敏感字符进行转义] // 包名 package com.zhulx.JDBC; // 导入实例类 import co ...
- 多校A层冲刺NOIP2024模拟赛04
T1.02表示法 竟然有出题人敢出高精度(其实只是一个把string转成01串),开场看出记搜后十分犹豫到底要不要写高精,徘徊很久还是写了个小高精. 码( /* GGrun */ #include&l ...
- KubeSphere 社区双周报 | OpenFunction 发布 v1.1.1 | 2023.6.9-6.22
KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书.新增的讲师证书以及两周内提交过 commit 的贡献者,并对近期重要的 PR 进行解析,同时还包含了线上/线下活动和布道推广等一系列 ...