Lazarus的设计目标是应用Free Pascal,所以所有凡是Free Pascal能运行的平台,Lazarus都可以运行。最新版本能运行于Linux,Win32和Mac OS。整个界面的外观和操作和Delphi IDE一样,因此,如果你会使用Delphi的话,用起Lazarus IDE来就一定能得心应手了。

Lazarus是一个用于FreePascal快速应用开发(RAD)的面向对象的FreePascal集成开发环境(IDE),不仅可

最新版lazarus0.9.30.4(3张)

以编译运行简单的pascal程序,还有很强的窗体处理功能,界面清晰,操作简单方便。Lazarus 对于窗口管理来说是中性的。可以工作在KDE(1.13版本)下,也可以工作在GNOME(1.23版本)或其他窗口管理器(MVM、WindowMaker)。Lazarus的设计目标是应用Free Pascal,所以所有凡是Free Pascal能运行的平台,Lazarus也可以运行。最新版本能运行于Linux,Mac OS,Win9x/2000/xp/win7/Win8和FreeBSD。目前,已提供32位和64位版本支持。Lazarus的工作界面、外观和操作和Borland 的Delphi 7 IDE非常相似,所不同的是Lazarus 是完全的自由软件。Lazarus 可以直接移植Delphi的代码。Lazarus的编程语言是以Pascal为基础的。Pascal语言具有可读性好、编写容易的特点,这使得它很适合作为基础的开发语言。同时,使用编译器创建的应用程序只生成单个可执行文件(.EXE,默认编译加入了调试信息,只包含一个空窗体的工程生成的可执行文件就达到了10多M。但可以通过编译选项去掉调试信息来减小可执行文件的大小,可以减为1M多点,然后通过UPX压缩,可以减为600多K。)。正是这种结合,使得Pascal成为Lazarus这种先进开发环境的编程语言。

由于Lazarus为开放的IDE,且在linux下表现良好,目前被中国计算机学会指定为NOI系列竞赛的Pascal语言推荐IDE。
在Linux中,Lazarus的图形用户接口(GUI) 由以下几个部分组成:
窗口系统--组织显示屏上的图形输出并执行基本的文本和绘图功能。
窗口管理器--负责对窗口的操作(比如最小化、最大化、关闭按钮的形状,窗口边框外观等)以及输入焦点的管理。
工具包--带有明确定义的编程界面的常规库。
Lazarus对系统软件、硬件要求都不高:
硬件方面:Intel Pentium 200MHz、32MB内存、100MB硬盘空间。
软件方面:内核(Kernel)在2.2以上,Qt库1.44 以上,XFree86 3.6 以上。
一个跨平台编译器的感人史
历史
Lazarus是从1999年2月开始的,成立时的主要成员是这三个人:
Cliff Baeseman
Shane Miller
Michael A. Hess
当时,他们三个曾经为之努力的megido计划(megido计划致力于打造一个开源、跨平台、可视化的Object Pascal快速应用开发环境)由于种种原因被解散。在挫折面前他们并不气馁,决定发起Lazarus计划。在随后的几年中,这个计划得到了稳步发展,引 起很多人的关注并拥有了一群稳定的支持者和开发者。遗憾的是,上述三个创始人中,只有Michael A. Hess仍在参与这项计划。
开发组中另一个元老是Marc Weustink,他在1999年8月就参与这个项目。在他之后的是2000年9月加入的Mattias Gaertner,他们两人一直是核心代码的主要编写者,是他们的共同努力让Lazarus变得成熟。
那么究竟什么是Lazarus?
Lazarus是一个基于Free Pascal的Delphi仿制品。Free Pascal是Linux、Win32、WinCE、Mac OS、OS/2、68K等操作系统下的一个基于GPL/LGPL的编译器,她被设计成可以理解,并编译OOP的Delphi语法。Lazarus在上述平台下可以像 Delphi一样来开发程序,打破了这些环境下缺少可视化开发工具的困窘局面。不像Java致力于“一次编写,到处运行”,Lazarus和Free Pascal则致力于“一次编写,到处编译”。由于对上述所有平台有完全相同的编译器,这意味着你不需要重新编码,就可以为不同的平台开发相同的产品。 Java基于虚拟机,Lazarus则产生原生代码,所以Lazarus的应用程序在效率上应该比用Java的程序更快一些。
Lazarus的GUI是什么?该用什么样的窗口部件(widget)?
这个部分由你来决定,Lazarus正在开发的是完全彻底独立的的API。一旦你写的代码想要连接到不同于以前选择的窗口部件,如果你想使用基于 GTK+,当然没有问题,如果你现在又想让它成为与GNOME兼容,同样没有问题,只要把界面代码的窗口部件设置成你想使用的那一种,您可以编译连接成那 种窗口部件了。如果那种窗口部件还没有内置支持,你也可以写上一个(呵呵,老大的话好像换个widget很容易,不过相信真要写的话就没有那么容易了)。
举例来说,你正在创建的是一个使用标准Windows窗口部件的Windows应用程序,现在你又想为它建立一个面向Linux的版本。首先确定你 想使用的窗口部件类型,让我们假设你想使用基于GTK+的,你可以复制代码到你的Linux开发机,编译,连接时对应选择GTK+接口单元。就是这么简 单。你现在创建了一个Windows产品的Linux副本,而没有任何额外的编码。
在这一点上,开发人员正在使用Gtk+作默认窗口部件。同时,他们也在做基于Qt和Win32API的窗口部件支持,在编译选项的窗口部件类型下拉 列表中,已经出现的还有Win CE、Carborn、fpGUI,用Pascal语言一次编码,就能编译出能在各种系统下运行的的应用程序,真是让人激动啊!即将发布的Lazarus 1.0允许开发人员配合LCL(Lazarus组件库)为其他的窗口部件创造接口单元。
所以这就意味着她像Delphi一样可以RAD
事情真的就是那样,她完全完成了吗?还没有。窗体设计部分还需要大量的工作,IDE则是功能完整的,可以满足绝大多数代码编写需要(已经比Delphi7 更加智能,当然,还是不能与Delphi7+CnWizards的组合相比,如果CnWizards能支持Lazarus就太好了)。提示一下,还有好几个方面的项目仍然需要帮助,也许你就可以帮上一把。
我是否可以使用现有的Delphi的代码? 如果代码是标准的Delphi Pascal并且采用Delphi的标准组件,那么答案是肯定的。如果它使用一些特定的database、OCX、或DCU那么答案将是否定的。这些特定 的Windows应用只能在Windows下工作,但是如果你只期望使用Free Pascal和Lazarus创建一个Windows产品那么答案将是肯定的(用了太多的Win32API,想转换到Linux就比较麻烦了,以前很炫很 酷的技巧,现在到变成了负担,呵呵)。这种情况并没有被目前的lcl过多考虑 ,但是对它的处理在未来则很有可能(应该说肯定,毕竟将现有的Windows应用程序直接跨平台编译是很多人的期望,虽然实现起来有难度,但是既然 ReactOS都能出现,又有什么是不可能的呢?)。
我是否可以用她创建商业产品?
是的!Free Pascal编译器是基于GPL/LGPL许可协议的,这意味着它是开源的,免费的,如果你有需要,还可以修改其代码,当然,你一定要发布这些改变,当有人想使用你的改动时,你有义务提供那些改变后的源代码
Lazarus的名号是怎么来的?
原来的项目叫Megido(尝试建立跨平台的Delphi克隆),但是这个努力失败了,众所周知,Lazarus是圣经中的人物,他死后由基督拯救,死而复活,所以,项目取名Lazarus,因为她的出现拯救了Megido。

delphi xe 的替代者 Lazarus的更多相关文章

  1. delphi 2010与delphi XE破解版的冲突

    在系统中同时安装了Dephi 2010LITE版与Delphi XE lite后,总是会有一个有问题 是因为两者都是读取C:\ProgramData\Embarcadero目录下的license文件, ...

  2. [转载]: delphi中XLSReadWrite控件的使用(2)---delphi XE下安装

    一.下载 官方下载网址: http://www.axolot.com/components/download.htm 从这里可以下载到从Delphi5到DelphiXE全部支持的版本. 二.软件安装 ...

  3. delphi XE Berlin ReadProcessMemory WriteProcessMemory

    delphi  XE,Berlin [dcc32 Error] Unit9.pas(93): E2033 Types of actual and formal var parameters must ...

  4. FastReport for delphi xe 安装步骤

    FastReport for delphi xe 安装步骤 1.先关闭DELPHI:2.下载后解压到一个目录,比如:D:FR:3.打开D:FR,运行recompile.exe ->点击" ...

  5. Delphi XE的firemonkey获取当前文件所在路径的方法

    Delphi XE的firemonkey获取当前文件所在路径的方法 在之前,我们知道有三种方法: ExtractFilePath(ParamStr(0)) ExtractFilePath(Applic ...

  6. Delphi xe 下快捷使用 FastMM 的内存泄露检测功能

    Delphi xe 集成了FastMM,调试程序是的时候可以方便地检查内存泄露了.  使用方法:在project中,添加一行: ReportMemoryLeaksOnShutdown := Debug ...

  7. Delphi XE中使用dbExpress连接MySQL数据库疑难问题解决(对三层的例子配置有帮助)

    Delphi IDE中包含一个Data Explorer的组件,如下图所示: 该组件基于dbExpress(包含TSQLConnection.TSQLDataSet.TSQLQuery.TSQLSto ...

  8. Delphi XE中类成员的访问权限(新增了strict private和strict protected,还有automated)

    Delphi XE中类成员的访问权限共提供了6个关键词来用于限定访问权限:public.private.protected.published.automated strict private . s ...

  9. [转]:Delphi XE中泛型数组的使用范例

    Delphi XE中泛型数组的使用范例,下面的范例简单的使用了泛型字符串数组,如用 TArray 代替 array of Word, 还可以使用 TArray 类提供的算法(就是少了点). uses ...

随机推荐

  1. Const vs. Readonly

    Const 被const修饰的变量不能为静态,因为const实际隐式上已经是静态变量. const变量在声明时就必须进行初始化,否则会有编译错误. const变量的赋值是发生在编译期间 Readonl ...

  2. JS动态生成表格后 合并单元格

    JS动态生成表格后 合并单元格 最近做项目碰到表格中的单元格合并的问题,需求是这样的,首先发ajax请求 请求回来后的数据 动态生成表格数据,但是生成后如果编号或者(根据其他的内容)有相同时,要合并单 ...

  3. PAT B1029 旧键盘 (20 分)

    旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在 2 行中分别给出应该输入的文字.以及 ...

  4. Java并发(一)并发编程的挑战

    目录 一.上下文切换 1. 多线程一定快吗 2. 测试上下文切换次数和时长 3. 如何减少上下文切换 4. 减少上下文切换实战 二.死锁 三.资源限制的挑战 四.本章小结 并发编程的目的是为了让程序运 ...

  5. 通过HttpWebRequest调用webService

    调用远端接口,向远端接口写入一个xml文件(loginLog为xml的字符串).关键方法如下: public object InsertAuditLog(string loginLog) { //Ws ...

  6. 开关电源五种PWM反馈控制模式

    开关电源五种PWM反馈控制模式 来源:--作者:--浏览:178时间:2016-08-10 14:18 关键词: 1 引言 PWM开关稳压或稳流电源基本工作原理就是在输入电压变化.内部参数变化.外接负 ...

  7. jQueryMobile的按钮样式

    好吧,已经学了jQueryMobile一年了,今天心血来潮,想要写一篇关于jQueryMobile的博客文章,记得去年暑假在公司实习jQueryMobile,想一想真是怀念当时还是菜鸟的自己,年轻就是 ...

  8. python安装opencv

    执行命令:pip install opencv-python即可

  9. 2017-2018-2 《网络对抗技术》20155322 Exp8 web基础

    [-= 博客目录 =-] 1-实践目标 1.1-实践介绍 1.2-实践内容 1.3-实践要求 2-实践过程 2.1-Web前端HTML 2.2-Web前端javascipt 2.3-Web后端 2.4 ...

  10. OpenCV学习C++接口 Mat像素遍历详解

    OpenCV学习C++接口 Mat像素遍历详解