现在0.926的Lazarus支持免重装了!

改进 找到C:/Documents and Settings/Administrator/Local Settings/Application Data COPY到原地就可以了

 

 

http://pengtu.net/wp2/pc/lazarus-0926-zh

Lazarus0.926的中文化配置

Lazarus经过了一年的持续开发,于本月‘正式’发布0.926测试版。(为啥不叫正式版?估计要等到1.0)。最鼓舞人心的特性莫过于UTF8编码的全面支持 。 这意味着雄心勃勃的开发者能够在自己的软件中同时使用:中文简体、繁体、韩文、日文、法语、阿拉伯语……。不过,作为一个刚刚迈入Pascal编程领域的 新手,大鹏关心的是这个东西在中文视窗下的方便之处。下面就几个方面测试:中文界面、代码内中文字符显示、免重装运行、中文输入法热键冲突。

首先的好消息是,中文语言包后继有人。从po文件中得知,一位署名‘XY.Chen’的网友拿起了翻译接力棒。我用winMerge软件对比网友‘巫山霏云 ’在0.924的工作,内容有很大更新,目测在三成以上。正是有了这些志愿者的辛勤工作,我们很容易见到亲切的中文界面。步骤:Environment》Environment Options…》Desktop》Chinese(zh_CN),重启生效。

第2个消息不是好消息。对于一个喜欢在程序中写中文注释的新手来说,我很遗憾的发现了自0.925以来的一个小问题。代码编辑器中的中文显示会重 叠。想像一下,就是5个汉字挤在3个汉字的宽度里。下面有截图,我也找到了勉强解决的办法。该问题我曾在Lazarus的邮件群中请教过,可惜,一群热心 的老外‘围观 ’英文不匝地的我,反正是没有解决问题,也不知道有没有人去提交bug。我因为被他们唬得一愣一愣的,也没敢确认这就是一个bug。经过一番折腾,可以确 认几点:只是显示问题,不影响代码保存和编译;只是代码编辑器有显示问题,组件属性和中文界面没有影响。另外一个很重要的事实,0.924版本中没有这个 问题。

根本原因据老外说,是synedit这个L内置编辑器的问题。暂时发现的解决方法是,更改编辑器的默认字体(Courier New),换个什么呢?Tahoma可以凑和。后来我用的是文泉驿的正黑字体(0.6),效果如图。顺便祝贺文泉驿四岁生日 ,这是个伟大的开源项目!

lazarus-926-editor-font-err

The way cope with that Chinese characters overlap:  Environment》Editor Options…》Display》Default editor font… (change other font)

第3个消息是,老生常谈的输入法热键冲突在这款IDE上同样发生着。由于英文程序员们不需要输入法,所以他们常常把Ctrl+Space这个快捷键 定义为一些辅助输入代码的热键,可惜,这个组合偏偏在中文视窗上是切换中英文输入法的热键。而且视窗热键的级别很高,所以结果就是,当你在Lazarus 里面写代码想寻求提示的时候,按了Ctrl+空格,很遗憾,只是把你的拼音或五笔输入法调了出来,而Lazaurs并没有给你应有的提示框。步骤:环境》 编辑器选项…》键盘映射》Code Tools命令行》标识符自动完成(改个什么键呢?F2如何?)。

差点还忘记了一个好消息,第4个消息是,现在0.926的Lazarus支持免重装了!也就是说,如果你有一份安装好了的Lazarus,而你的 windows遭遇了不测需要重装,或者,你想到另外一台电脑运行L,那么,恭喜你,不需要再次安装了,直接使用或拷贝原来的程序目录即可。 lazarus.exe在第一次运行的时候,会弹出好几个对话框,告诉你发现了路径错误(如果你两次运行环境完全一致,则不会有这个问题,比如你重装C盘 的Win)。没关系,到环境选项对话框去更改几个路径配置即可。据我观察,新版的Lazarus已经把用户信息写入到了视窗默认的位置 (C:/Documents and Settings/…),当然就路径无关了。哦,我的老习惯,L还能够在光盘上只读运行。


 2008-10-29补充:老外在邮件群里面答复了我,已经有人提交了bug并给了一个临时补丁(不知道咋用),具体情况在issue页面上已经写的蛮多了,看这里:bugs.freepascal.org/view.php?id=11819 。回我信的马丁就是这个bug的负责人。


2008-12-7补充:据牡蛎同学提示,已经摸索出彻底的《Lazarus免安装方法》 ,针对0.926有效。如下:

  1.  下载lazarus-0.9.26-fpc-2.2.2-win32.exe,用UniExtract.exe 解压,后者是个专门拆解安装包的免费软件。得到约400MB计一万二千余个文件,形如:
    Lazarus{app}...

        {sys}libqt4intf.dll    1,214 KB    2008-5-9

        install_script.iss    1,362 KB    2008-11-6
  2. 保留最大的app目录,其余无用。然后运行app/Lazarus.exe,会弹出路径警报,确认。出IDE后到环境设置对话框确定各路径为绝对路径。尝试过各种相对路径写法,均失败。至此,可顺利运行L,但不能调用fpc进行编译。报错为:
    C:/...project1.lpr(1,1) Fatal: Can't find unit contnrs used by Masks
  3. 问题的根源为解压目录呢缺少fpc.cfg文件。经猜测,确可用fpcmkcfg.exe生成。命令提示符运行:
    G:/lazarus>fpc2.2.2/bin/i386-win32/fpcmkcfg.exe > fpc.cfg

    然后修改cfg文件内的路径为绝对路径(若能支持相对路径则更好),如:

    #IFDEF FPCAPACHE_2_0

    -Fu/units/$FPCTARGET/httpd-2.0

    改为

    -FuG:/lazarusfpc2.2.2/units/$FPCTARGET/httpd-2.0

    有多处修改,#为注释符号。保存后L即可编译。
    至此完成。

Lazarus是一个pascal语言的综合开发环境(IDE),被看做Delphi的开源替代品。目前的版本接近1.0,已经成熟可用。通常看到 一个开源的软件,我都指望着它能直接拷贝运行,就象OpenOffice一样,后者甚至能在光盘上运行。不过我发现这个Lazarus直接拷贝运行会报 错。查询官方资料,老外给出了U盘运行的方法,感觉非常麻烦。经过几天的摸索,我终于找到了Lazarus免重装的方法。
Lazarus 是 第一次来到pengtu的开源办公室,给大家做个介绍。:)这个软件已经有些年头了,说起它编辑的语言:pascal,恐怕接触编程的人都如雷贯耳。后者 曾经是大学《数据结构》《算法设计》的首选语言,后被C语言平分天下,再后来又被java蚕食部分。不过,pascal至今仍然是国际信息奥林匹克 (IOI)的三种语言之一,而Lazarus是国内青奥赛(NOI)的唯一推荐IDE。我们看到的Lazarus中文界面,就是一位NOI选手‘巫山霏云 ’的作品。

拷贝视窗下某个已经安装好的 Lazarus/ 文件夹。大约380MB,有1万个文件,如在ntfs分区可选磁盘压缩,能压掉一半空间。如果此时直接运行Lazarus.exe会报错多次并最终无法运行。官方的wiki文档上介绍了老外写的一个方法,利用一个小软件sed使Lazarus在USB driver运行 。这个开源小软件sed.sf.net,是历史悠久的命令行工具。我觉得这方法费劲,还不如去请portableapps.com帮忙。我要找到一个无需借用外来软件的方法。

1、修改Lazarus目录内文件 environmentoptions.xml 的内容,替换正确路径(如把C:/Lazarus替换为F:/Lazarus,还要选择临时文件位置)。如果此时运行L,能见到界面,但是编译默认窗体会 报错:Can’t find unit contnrs used by Graphics 。

2、同样的方式修改 fpc.cfg 文件,位置在:Lazarus/fpc/2.2.0/bin/i386-win32/fpc.cfg 。此时已可成功编译,下面是心理安慰项目。

3、修改“lazarus增加assoc关联的注册表.reg”并导入注册表。这一步不是必须的,我曾删除注册表中的这些项目,默认窗口的编译依然 成功,风险未知,姑且一用。另有向视窗控制面板添加程序名单的注册表文件:Uninstall-Lazarus_isl.reg,可供娱乐。

OK!Lazarus可以通过上述方法在硬盘和U盘之间拷贝运行了。由于程序要在自身文件夹内写文件,所以尚不能在光盘运行。由于步骤1、2涉及的两个文件会在配置后增大,这里附上两个干净的文档,供大家修改替换,注册表也在里面。

lazarus-green.zip

今天对Lazarus的介绍就到这里,由于它是开发工具,已经超出了一般的‘办公软件’范畴,以后的介绍将发布在pengtu博客的‘学电脑’栏 目。顺带说一说Lazarus中文界面调用的方法:菜单:Environment》Desktop》Language,选Chinese。

(2008-6-23补充:发现在新的0.925测试版中,把用户参数放到普遍的 C:/Documents and Settings/ABC/Local Settings/Application Data/lazarus ,免重装或许更容易)

功能强大,直接虐死wiringPi的树莓派IO之pascal代码,包括GPIO,I2C,PWM等控制。 rpi_hal-Hardware Abstraction Library (GPIO, I2C and SPI functions and procedures) This Unit with around 1700 Lines of Code provided by Stefan Fischer, delivers procedures and functions to access the rpi HW I2C, SPI and GPIO: Just an excerpt of the available functions and procedures: procedure gpio_set_pin (pin:longword;highlevel:boolean); { Set RPi GPIO pin to high or low level; Speed @ 700MHz -> 0.65MHz } function gpio_get_PIN (pin:longword):boolean; { Get RPi GPIO pin Level is true when Pin level is '1'; false when '0'; Speed @ 700MHz -> 1.17MHz } procedure gpio_set_input (pin:longword); { Set RPi GPIO pin to input direction } procedure gpio_set_output(pin:longword); { Set RPi GPIO pin to output direction } procedure gpio_set_alt (pin,altfunc:longword); { Set RPi GPIO pin to alternate function nr. 0..5 } procedure gpio_set_gppud (mask:longword); { set RPi GPIO Pull-up/down Register (GPPUD) with mask } ... function rpi_snr :string; { delivers SNR: 0000000012345678 } function rpi_hw :string; { delivers Processor Type: BCM2708 } function rpi_proc:string; { ARMv6-compatible processor rev 7 (v6l) } ... function i2c_bus_write(baseadr,reg:word; var data:databuf_t; lgt:byte; testnr:integer) : integer; function i2c_bus_read (baseadr,reg:word; var data:databuf_t; lgt:byte; testnr:integer) : integer; function i2c_string_read(baseadr,reg:word; var data:databuf_t; lgt:byte; testnr:integer) : string; function i2c_string_write(baseadr,reg:word; s:string; testnr:integer) : integer; ... procedure SPI_Write(devnum:byte; reg,data:word); function SPI_Read(devnum:byte; reg:word) : byte; procedure SPI_BurstRead2Buffer (devnum,start_reg:byte; xferlen:longword); procedure SPI_BurstWriteBuffer (devnum,start_reg:byte; xferlen:longword); { Write 'len' Bytes from Buffer SPI Dev startig at address 'reg' }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值