tag 标签: lazarus

相关博文
  • 热度 17
    2014-5-12 16:25
    3598 次阅读|
    2 个评论
    Linux下的串口调试软件比较少,只有minicom、hterm、cutecom等很少几个,对于从windwos转过来的人不是很习惯。所以,最近使用Lazarus将以前的一个串口软件atcom移植到了Linux上,修正了一些错误,优化了内部结构,使得运行速度更快。它可以很好的运行在Linux、WinXP、Win7等平台上。理论上,它也可以运行在McaOS上,不过没有测试过。     软件截图   基本通信界面,上面是串口参数设置,下面是命令输入栏,中间是数据接收区,右边是历史命令列表。       自动发送模式,可以发送预置的命令       自动应答模式,在接收到预设的命令后,自动发送对应的命令。       软件放在了Sourceforge上,包括了源代码和编译好的Win32、Win64、Linux32、Linux64等二进制程序。在Windows下,用户参数文件保存在软件目录下;在Linux下,用户参数保存在 /home/用户/.config/atcom/目录下。   http://sourceforge.net/projects/atcom/?source=directory   无需安装第三方组件,使用默认的配置就可以正常编译。编译时,只需要选择CPU和OS参数,就可以产生相应版本的程序,无需修改任何代码。   目前版本的功能还比较少,只有基本的数据收发,和串口助手功能类似,下一版会加入变量,可以自动计算CRC校验、产生随机数、函数计算、超级终端等功能。    
  • 热度 22
    2013-11-23 16:11
    2061 次阅读|
    0 个评论
      在Lazarus中有一个问题,就是当你使用MessageBox时不能显示中文信息,这对于英文不好的说实属一个大问题。实质上现如今的软件都基本上是使用UNICODE编码,支持几十种语言,所以就不是什么大问题了,但对于新手来说可能略显困难!正确显示中文的做法如下:   MessageBox(0,PChar(UTF8ToAnsi('正常显示中文')),PChar(UTF8ToAnsi('提示')),MB_OK or MB_ICONEXCLAMATION);     国外关于此问题的一个帖子:http://forum.lazarus.freepascal.org/index.php/topic,13184.msg68757.html?PHPSESSID=d04fbb4b413ab7eb21d26b32039151dc#msg68757
  • 热度 22
    2013-11-20 23:10
    1835 次阅读|
    0 个评论
      不管是在Delphi或Lazarus中状态栏内的文字在设计时是无法修改其颜色,字体大小等等字体属性的,只能使用其默认的字体属性!那么当我们不想用其默认的黑白颜色时,要怎样去修改呢? 下面说说修改的具体步骤,网上查阅方法基本上都是通过TStatusBar的OnDrawPanel事件对其进行重绘,因为在重绘事件中有Canvas属性,此属性里就具有相关的字体属性设置。由于网上只说了思路,具体实现起来对于新手来说可能还有些困难。下面是网上的原话: 首先:   确定Panels 的 Sytle 是否为:psOwnerDraw    其次:   在statusbar控件单击 ondrawpanel事件   写如下代码   StatusBar.Canvas.Font.Color:=clGreen; 改成自己所要的颜色   StatusBar.Canvas.TextRect(Rect, Rect.Left, Rect.Top, Panel.Text);   我说说调用部分,直接上代码吧,好理解些! var  nRect : TRect;    procedure TForm1.FormCreate(Sender: TObject); begin    nRect.Left := 0; // 初始化矩形区域大小    nRect.Top := 198; // Record类型的变量不能在定义时直接赋初值,要单独引用其域进行赋值!    nRect.Bottom := 0;    nRect.Right := 0;    StatusBar1DrawPanel(StatusBar1,StatusBar1.Panels.Items ,nRect); // 注意此处第三个形参是需要实参为TRect类型的,需要自己根据TStatusBar大小构造一个 end;  
  • 热度 24
    2013-10-23 21:51
    1340 次阅读|
    2 个评论
      最近在学习Lazarus的过程中,觉得里面的异常处理机制很有用处,于是就和C++中的异常处理作了下比较。 异常指的是程序在编译和运行过程中出现的异常。编译中的异常通过IDE能快速的看到并做出改正,但如果是在程序交付运行后而出现的异常则是很难处理的,这就要求程序员在编程的过程中就应该要想到可能出现的异常情况,并根据自己的要求做出相应的处理,这对于编程来说显得十分重要。 首先说说Lazarus(基本上和Delphi类似)中的异常处理机制,Lazarus本身就提供了很多的异常类,同样用户也可自己定义自己的异常类。和大多数语言一样触发异常的方式分为程序系统自动异常和程序员自己触发异常。由程序系统触发的异常部分情况下程序系统会作出处理,但很多情况下如果程序系统不作处理那么程序可能就非法停止了。Lazarus中提供了两种异常处理语句: 1.try                2.try    statement            statement   finally              except   end                  (else)                        end 第一种代表如果在try..finally块内出现了异常则会跳出try..finally块而去执行finally..end块,但要记住的是不管在try..finally块内有无异常的发生finally..end块都会执行。第二种基本上和C++中的try..catch..相同,主要用于程序员自定义的捕捉产生的异常而进行处理。对比了一下两者原理基本上就是一样的,C++中采用的方法是在函数本身只产生异常不处理异常,是在其上一级内去处理异常,如上一级也不能处理则依次类推到最高一级,如最高一级也没有异常处理语句则程序就死掉了。Lazarus中如果在except..end块中没有异常处理语句,则在最近的地方继续寻找try..except语句,依次类推,如若依旧没有则程序也就死掉了。其实基本上虽然计算机语言有很多种,但大部分的思路都是相通的。  
  • 热度 18
    2013-10-16 21:47
    1655 次阅读|
    0 个评论
         由于项目需要要写一个上位机,以前只搞过VB并都只算是入门级别的,哎,惭愧啊!    这次选择的是Lazarus这个IDE作为上位机编写软件。Lazarus是以Free Pascal语言为基础的IDE,基本上和以前红极一时的Delphi相似,可能有的人会问为什么Pascal这么老的语言怎么还活着啊!说实话我也不明白,只知道从Pascal中分支了许多其它的语言如Object-Pascal,Free-Pascal...其中Delphi是以Object-Pascal为基础,而Lazarus是以Free-Pascal为基础,其实两者相差不大。Lazarus最大的优点就是在于它具有超强的跨平台性,能运行在Windows,Linux,IOS等主流操作系统上,所以如果你想让你的应用软件能适应多系统的话,可以选择尝试!   Lazarus官网:http://www.lazarus.freepascal.org/