Lazarus/Free pascal
c_huabo
这个作者很懒,什么都没留下…
展开
-
终于可以在Linux上开发Delphi程序了
Lazacus 是一个开源的基于Pascal的IDE开发软件,和Delphi非常类似,但这是个免费的开源软件,在Linux下安装tar 压缩包就可以装上, 本人开始下了rpm包,可是要安许多依赖rpm,没有成功,下了lazarus-0.9.28.2-src.tar.bz2解压缩后,打开终端命令窗口,执行 [root@localhost lazarus]#make clean all原创 2010-01-08 12:54:00 · 9447 阅读 · 0 评论 -
delphi Socket通信的控件使用和API使用的区别
delphi Socket通信的控件使用和API使用的区别原创 2012-06-19 16:50:08 · 1854 阅读 · 0 评论 -
Lazarus的0.9.30和0.9.30.4版本差异
今天发现0.9.30和0.9.30.4的两个版本的lazarus在字符编码里不兼容,用0.9.30版本写的一个DLL文件,里面有对中文做转换的处理,在0.9.30.4里调用报错SIGSEGV错误,调用不了;0.9.30.4的版本用来转换Delphi工程后,界面的中文字符重新保存一下可以正常转换过来,而0.9.30的版本在转换Delphi工程时,中文没法处理;原创 2012-07-17 14:17:38 · 791 阅读 · 0 评论 -
Lazarus的IDE的bug
Lazarus的IDE编缉环境老是出错;有时连一些包含文件都要放在同一个目录下,才能识别,放在父目录下,就算指定了path路径都不行;唉!原创 2012-08-10 14:30:51 · 838 阅读 · 0 评论 -
再谈指针运算和地址加减运算的区别
先上代码,有下面一段代码://下面是读取线状目标的记录内容的代码:procedure OnReadLineShp(ShpFileName:String);var FileHandle:integer; RecordNumber:integer; ContentLength:integer; num:integer; shapeType:integer;原创 2012-08-31 09:59:27 · 3033 阅读 · 0 评论 -
dbf文件结构分析
老规矩,把下面的复制到记事本,用SysFix字体;Tdbf_head = packed record vers : char ; //版本标志 yy,mm,dd :byte; // 最后更新年、月、日 no_recs : longword ; // 文件包含的总记录数; head_len,rec_len : word; //文件头长度,记原创 2012-08-31 16:34:06 · 1488 阅读 · 0 评论 -
lazarus下TODBCConnection的使用
lazarus下TODBCConnection是一个数据库连接控件,其实不用配置ODBC也可以连接,和Delphi下的TADOConnection一个好使,只要设置Driver和Prarams这两个参数就行了,当然还要配合一个TSQLTransaction组件,使用时,DataBaseName属性不要设置,否则倒会提示连接不成功,这个我也没弄清楚!下面是连接代码,Access的: con原创 2012-09-13 13:45:12 · 2623 阅读 · 0 评论 -
PageControl页显示的控制
PageControl页有时要根据需要显示有些页,不显示有些页,可以设置PageControl.Pages[i].TabVisable:=false;而不是设置visable属性;原创 2012-10-29 15:40:04 · 2101 阅读 · 0 评论 -
integer(4294967295)=?
integer(4294967295)=-1原创 2012-11-02 11:55:05 · 964 阅读 · 0 评论 -
Delphi控件SPComm改造为Lazarus版本的问题
有一Delphi串口通信控件SPComm,在D下很好使,本人想把它改造为Lazarus版本,而就在控件的Create和Destroy里面卡壳了,在构造函数里有一段代码:if not (csDesigning in ComponentState) then FHWnd := AllocateHWnd(CommWndProc); 这是一个消息的传递的语句,把串口的原创 2012-11-05 11:39:56 · 2784 阅读 · 2 评论 -
Lazarus无法查询Access数据库中为空的小数字段的原因
Lazarus无法查询Access数据库中为空的小数字段,提示:“could not get field data for field”,因为该字段为小数类型,而值为空,但好像Access小数类型字段值如果为0,则会被自动改为空值,原来可以设置格式为”固定“,则值为0时,显显0.000,就不会出现查询不了的问题,而这在delphi中就不会出现类似问题,估计是delphi优化了吧!原创 2013-01-08 09:41:50 · 982 阅读 · 0 评论 -
Lazarus查找字段的替换用法
Lazarus中如果用了查找字段,根据no查找另一个表的name,有时如果这个no为空,则,显示的查找结果会报错,说是不能把variant类型转换为string类型,这时可以用left join 联合查询就行了,注意,如果用到了修改功能,需要在Update SQL属性中写更新sql,才能正确更新;原创 2013-01-10 16:15:13 · 933 阅读 · 0 评论 -
Lazarus数据集控件SQLQuery更新的两种情况
Lazarus数据集控件SQLQuery更新的两种情况:1、如果只有一个表的字段,如果这个表设有主键,则把主键字段的ProviderFlags属性设为pfInKey,UsePrimaryKeyAsKey设为true,则UpdateSQL不用设置,也可更新成功;2、如果选择了一个表的字段,还添加了查找字段,或是其他如计算字段,则必须设置UpdateSQL,才能正确更新;原创 2013-01-10 16:11:01 · 2414 阅读 · 0 评论 -
解决“串口接收数据时被截断”的问题
解决“串口接收数据时被截断”的问题今天是忙里愉闲的写了这篇文章,我写的一个串口测试程序,用的是PComm.dll进行通信的,但在有的电脑上运行时,接收数据只要有点长度,比如30个字节,数据就会被截断,并不是所有电脑都会出现这样的问题,害得同事说是不是用的控件有问题,其实,这知道,PComm.dll这样的组件,技术已经相当的成熟了,做这个控件,人家可是大厂,就靠这吃饭的,再说了,几十年的原创 2012-04-18 13:44:08 · 11870 阅读 · 4 评论 -
一键清除Lazarus临时文件
把下面的拷贝到一个文本文件中,保存为Clear.bat,可以快速清理当前文件夹下Lazarus编译的临时文件(包括子文件夹下的临时文件),if exist filelist.txt del fileList.txt@echo offset ParentPath=.rem for /f "delims=" %%a in ('dir /s /b "%ParentPath%\*.*"')原创 2012-01-12 09:22:04 · 887 阅读 · 0 评论 -
Multiple defined symbol PASCALMAIN
今天遇到一个问题,昨天运行还好好的,打开工程,Run,就提示“Multiple defined symbol PASCALMAIN”,gg了一下,发现是工程只能有一个begin end.标记,但文件里确实只存在一个,把ppu,bak临时文件删除,OK原创 2012-01-12 08:54:51 · 1071 阅读 · 0 评论 -
Delphi多维动态数组重定义长度
<br />Delphi在定义多维数组时有两种方法:动态定义或静态定义<br /> 动态定义:<br />bufanalog0:array of array of array of array of byte;<br /> <br />在使用前重设长度:<br /> if (board_model=dso2908a_g512) or (board_model=dso2908b_g512) then<br /> SetLength(bufanalog0,1023+1,memsizek,19+1,0+1原创 2010-07-15 15:34:00 · 5311 阅读 · 0 评论 -
FireBird的两个误区:动态参数传递出错Incorrect values within SQLDA structure
动态参数Incorrect values within SQLDA structure原创 2010-06-04 11:40:00 · 1741 阅读 · 0 评论 -
虚拟串口调试技巧
虚拟串口调试技巧原创 2010-09-06 13:29:00 · 2297 阅读 · 0 评论 -
FireBird数据库设计技巧
FireBird数据库以它的短小而精悍著称,其性能可以和大型的MSSQL SERVER、Oracle相媲美,具有其它优秀数据库的一些特点,而它自身又有一些它的特点,因此在设计数据库时也有一些和其它数据库的技巧。原创 2010-09-20 11:18:00 · 1221 阅读 · 0 评论 -
"unable to load fbembed.dll"解决方法
<br />Firebird嵌入版的实施记录<br />使用Firebird的嵌入版只要把所需的几个DLL文件放在可执行文件目录下,就可以不要安装FB服务,使用起来方便,达到绿色软件的目的,按照Readme的说明,只要把fbembed.dll、icudt30.dll、icuuc30.dll和数据库文件放在同一个目录下,在程序里设置数据库的连接VendorLib的名称为fbembed.dll的完整名称(包括路径),这样就可以正常运行程序,但经测试,老是提示"unable to load fbembed.dll原创 2010-10-29 13:25:00 · 6114 阅读 · 2 评论 -
DBGridEh的安装方法
<br />1.D6中设置查询路径delphi6和dataservice<br />2.将common目录中的文件复制到delphi6目录下,将langresources目录下Simplified Chinese中的文件复<br />制到delphi6目录下<br />3.打开EhLib60.dpk并编译(不安装),打开DclEhLib60.dpk并编译,然后安装<br /><br />完成以上操作后,可以打开DEMO目录下的例子测试安装是否完成。原创 2011-01-21 16:17:00 · 2343 阅读 · 0 评论 -
D7下Int64类型的参数传递方法
如果在数据库设计中要用到Int64类型的字段,在程序在动态查询到这个字段,传递参数时会出现问题,因为D7还没支持Query1.Params.ParameterByName('f_FiledName').AsInt64这种用法,估计是D7的一个Bug吧,但必须要用这种类型怎么办?原创 2011-02-18 12:59:00 · 829 阅读 · 0 评论 -
Delphi语法误区
<br /><br />使用Delphi传递参数时,会根据需要采用两种方法:传地址,传参数,<br />传地址传的是变参,就是在函数体或过程内部对这个参数改变了,返<br />回时这个参数就改变了,而传参数是值参调用,在函数体内部或过程<br />内部对这个参数进行修改,返回时这个参数还是以前的值,变参调用<br />时,在参数前面加上关键字Var即可,当有多个参数要用作变参时,<br />可以用下面的语法:<br />Var Param1,Param2,Param3:string;<br />当然有一个前原创 2011-05-11 22:30:00 · 585 阅读 · 0 评论 -
Delphi对For变量的优化(不可思议)
有下面一段代码:procedure TForm1.Button1Click(Sender: TObject);vari: integer;const Item:array[0..18-1]of LongWord =(1 , 3 ,5 ,7 ,9 , 11, 13 ,15, 17, 19 , 21 , 23, 25 , 27, 29, 31 , 33 ,35);beginfor i := 0 to原创 2011-06-28 11:09:00 · 1935 阅读 · 0 评论 -
Lazarus控件安装方法
Lazarus的控件和Delphi的控件安装方法差不多,但刚开始还是不能搞定,老是提示Lazarus Identifier not found "Register",搜索了好多的资料,还是不能解决看到要放在Components目录下原创 2011-11-16 15:50:36 · 5984 阅读 · 0 评论 -
SQL Error:library routine called out of sequence.
在Lazarus+ZEOSDBO连接数据库后,进行打开、修改操作SQLite数据库,本机运行正常,可是在测试机上一跑,老是提示“SQL Error:library routine called out of sequence.”以为是动态库的问题,鼓捣了好长时间,才发现是自已把数据库路径设为绝对路径,它当然找不到数据库了,设为相对路径后,运行OK!原创 2011-11-21 14:22:13 · 7199 阅读 · 0 评论 -
"sql statement not set"和"preparestatement:Dynamic sql error"
今天试了一下Lazarus的FB操作能力,反得提示“sql statement not set”,因为SQLQuery是用来插入数据的,所以sql属性没有设置,而是动态赋值:Insert...但是老提示上面的错,刚开始以为是插入也需要一个默认的sql,其实是自已搞错了,sql语句设了,但没有赋值过去;还有一个错,老是报“preparestatement:Dynamic sql error”,原创 2011-12-28 11:56:11 · 1497 阅读 · 0 评论 -
世界上最恶心的调用方法:Delphi调用Java的class方法法
世界上最恶心的调用方法是,:用Delphi调用Java的class方法:如果写了一个java方法:package com.api;public class DelphiCallJava { public static String dTest(String args,int args2,String args3){ if(args==null){原创 2014-08-23 16:10:30 · 6013 阅读 · 1 评论