﻿<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.2.3" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>评论: Lazarus小知识</title>
	<link>http://pengtu.net/wp2/pc/lazarus-faq</link>
	<description>请认准Pt标志</description>
	<pubDate>Sat, 22 Nov 2008 01:50:33 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.3</generator>

	<item>
		<title>作者: chenxinyv</title>
		<link>http://pengtu.net/wp2/pc/lazarus-faq#comment-41</link>
		<dc:creator>chenxinyv</dc:creator>
		<pubDate>Thu, 08 May 2008 09:03:02 +0000</pubDate>
		<guid>http://pengtu.net/wp2/pc/lazarus-faq#comment-41</guid>
		<description>原文：http://hi.baidu.com/chenxinyv/blog/item/f8062b3d5e8e7e04bba1677d.html

关于Lazarus的一些描述
2008-03-04 11:52

历史
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的编译器，她被设计成可以理解，并编译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许可协议的，这意味着它是开源的，免费的，如果你有需要，还可以修改其代码，当然，你一定要发布这些改变，当有人想使用你的改动时，你有义务提供那些改变后的源代码。

Lazarus的名号是怎么来的？
原来的项目叫Megido（尝试建立跨平台的Delphi克隆），但是这个努力失败了，众所周知，Lazarus曾经拯救过基督，所以，项目取名Lazarus，因为她的出现拯救了Megido。</description>
		<content:encoded><![CDATA[<p>原文：http://hi.baidu.com/chenxinyv/blog/item/f8062b3d5e8e7e04bba1677d.html</p>
<p>关于Lazarus的一些描述<br />
2008-03-04 11:52</p>
<p>历史<br />
Lazarus是从1999年2月开始的，成立时的主要成员是这三个人：<br />
Cliff Baeseman<br />
Shane Miller<br />
Michael A. Hess<br />
当时，他们三个曾经为之努力的megido计划（megido计划致力于打造一个开源、跨平台、可视化的Object Pascal快速应用开发环境）由于种种原因被解散。在挫折面前他们并不气馁，决定发起Lazarus计划。在随后的几年中，这个计划得到了稳步发展，引起很多人的关注并拥有了一群稳定的支持者和开发者。遗憾的是，上述三个创始人中，只有Michael A. Hess仍在参与这项计划。</p>
<p>开发组中另一个元老是Marc Weustink，他在1999年8月就参与这个项目。在他之后的是2000年9月加入的Mattias Gaertner，他们两人一直是核心代码的主要编写者，是他们的共同努力让Lazarus变得成熟。</p>
<p>那么究竟什么是Lazarus？<br />
Lazarus是一个基于Free Pascal的Delphi仿制品。Free Pascal是Linux、Win32、WinCE、Mac OS、OS/2、68K等操作系统下的一个基于GPL的编译器，她被设计成可以理解，并编译OOP的Delphi语法。Lazarus在上述平台下可以像Delphi一样来开发程序，打破了这些环境下缺少可视化开发工具的困窘局面。不像Java致力于“一次编写，到处运行”，Lazarus和Free Pascal则致力于“一次编写，到处编译”。由于对上述所有平台有完全相同的编译器，这意味着你不需要重新编码，就可以为不同的平台开发相同的产品。Java基于虚拟机，Lazarus则产生原生代码，所以Lazarus的应用程序在效率上应该比用Java的程序更快一些。</p>
<p>Lazarus的GUI是什么？该用什么样的窗口部件（widget）？<br />
这个部分由你来决定，Lazarus正在开发的是完全彻底独立的的API。一旦你写的代码想要连接到不同于以前选择的窗口部件，如果你想使用基于GTK+，当然没有问题，如果你现在又想让它成为与GNOME兼容，同样没有问题，只要把界面代码的窗口部件设置成你想使用的那一种，您可以编译连接成那种窗口部件了。如果那种窗口部件还没有内置支持，你也可以写上一个（呵呵，老大的话好像换个widget很容易，不过相信真要写的话就没有那么容易了）。</p>
<p>举例来说，你正在创建的是一个使用标准Windows窗口部件的Windows应用程序，现在你又想为它建立一个面向Linux的版本。首先确定你想使用的窗口部件类型，让我们假设你想使用基于GTK+的，你可以复制代码到你的Linux开发机，编译，连接时对应选择GTK+接口单元。就是这么简单。你现在创建了一个Windows产品的Linux副本，而没有任何额外的编码。</p>
<p>在这一点上，开发人员正在使用Gtk+作默认窗口部件。同时，他们也在做基于Qt和Win32API的窗口部件支持，在编译选项的窗口部件类型下拉列表中，已经出现的还有Win CE、Carborn、fpGUI，用Pascal语言一次编码，就能编译出能在各种系统下运行的的应用程序，真是让人激动啊！即将发布的Lazarus 1.0允许开发人员配合LCL（Lazarus组件库）为其他的窗口部件创造接口单元。</p>
<p>所以这就意味着她像Delphi一样可以RAD<br />
事情真的就是那样，她完全完成了吗？还没有。窗体设计部分还需要大量的工作，IDE则是功能完整的，可以满足绝大多数代码编写需要（已经比Delphi7更加智能，当然，还是不能与Delphi7+CnWizards的组合相比，如果CnWizards能支持Lazarus就太好了）。提示一下，还有好几个方面的项目仍然需要帮助，也许你就可以帮上一把。</p>
<p>我是否可以使用现有的Delphi的代码？<br />
如果代码是标准的Delphi Pascal并且采用Delphi的标准组件，那么答案是肯定的。如果它使用一些特定的database、OCX、或DCU那么答案将是否定的。这些特定的Windows应用只能在Windows下工作，但是如果你只期望使用Free Pascal和Lazarus创建一个Windows产品那么答案将是肯定的（用了太多的Win32API，想转换到Linux就比较麻烦了，以前很炫很酷的技巧，现在到变成了负担，呵呵）。这种情况并没有被目前的lcl过多考虑 ，但是对它的处理在未来则很有可能（应该说肯定，毕竟将现有的Windows应用程序直接跨平台编译是很多人的期望，虽然实现起来有难度，但是既然ReactOS都能出现，又有什么是不可能的呢？）。</p>
<p>我是否可以用她创建商业产品？<br />
是的！Free Pascal编译器是基于GPL许可协议的，这意味着它是开源的，免费的，如果你有需要，还可以修改其代码，当然，你一定要发布这些改变，当有人想使用你的改动时，你有义务提供那些改变后的源代码。</p>
<p>Lazarus的名号是怎么来的？<br />
原来的项目叫Megido（尝试建立跨平台的Delphi克隆），但是这个努力失败了，众所周知，Lazarus曾经拯救过基督，所以，项目取名Lazarus，因为她的出现拯救了Megido。</p>
]]></content:encoded>
	</item>
</channel>
</rss>
