
CBX/Delphi
c_huabo
这个作者很懒,什么都没留下…
展开
-
c语言转换成delphi程序语言
1,指针int *ptr; char *ptr;varptr:^Integer;ptr:^char;2,无类型指针的定义cvoid *ptr;delphi:ptr:Pointer3,取值:c(*ptr)delphiptr^4,取地址cptr=&Object;delphiptr:=@Object5,指针运算c原创 2016-05-27 14:23:20 · 2164 阅读 · 0 评论 -
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 · 2379 阅读 · 0 评论 -
音频数据文件WAVE结构分析--Windows XP 启动.wav 文件头分析
Windows XP 启动.wav 文件头分析: 文件长度② 声道数 格式标记"RIFF"① WAVE fmt 不定 WAV格式类别 采样频率 数据传输率③ [原创 2010-11-03 12:31:00 · 2074 阅读 · 0 评论 -
Delphi内存指针操作说明--怎样把字符串的内容拷贝到比特数组中?
<br />当从串口收到数据01 30 30 30 30 30 30 30 30 30 30 01, Str内容为#1'0000000000'#1,怎样把Str字符串的内容拷贝到比特数组rbuf中?<br /><br /><br /><br /><br />Len:=ComPort.ReadStr(Str, Count);<br /><br /> p:=Integer(Str); //@str:=$12fD70 //@$12fD70:=$D693D8<br /><br /> Memo.Lines.Add原创 2010-12-21 15:55:00 · 2533 阅读 · 0 评论 -
FireBird备份为空库的简单方法
<br />把下列文件保存为批处理文件“备份为空库.bat“,在以后要把使用了很久的数据库清空时,可以双击运行即可:gbak.exe -b -m TestMeter.fdb testmeter.fbk -user sysdba -password masterkey;备份元数据,包括所有表、存储过程、触发器<br />if exist new.fdb del new.fdb;先删除要创建的新数据库文件<br />f:/fb213/bin/isql.exe -q -i Create.sql;创建一个新的数据库原创 2010-10-29 13:46:00 · 1907 阅读 · 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 · 6154 阅读 · 2 评论 -
FireBird数据库嵌入版备份方法
FireBird数据库嵌入版备份方法原创 2010-12-09 09:41:00 · 1536 阅读 · 0 评论 -
RxSwtich的用法
RxSwtich开关是一个Delphi控件,可以用它来模拟实际的开关,比如电灯开关,继电器等,但它的使用和其它的按钮有一点区别,它是一个点击有三个事件的控件:OnClick、OnOn、Off,当点击后,和其它按钮一样会触发OnClick事件,而且也会触发它专有的事件OnOn或OnOff,当它原来的StateOn状态为True(打开时),点击之后StateOn状态变为原创 2010-10-13 17:05:00 · 1026 阅读 · 0 评论 -
DL/T-2007数据帧为什么上行码为00
电力载波通信数据帧的每一个结构码应该都有它的特殊功能,就象从站上报数据给主站,上行码为00,其实这里00是兼容了RS485帧和载波帧两种格式,载波数据帧是以前导码FE FE FE FE开头,然后是7E AA,然后是后面的数据长度、上/下行标识码(80/00)、帧起始符68、地址(6个字节,12位)、帧起始符68、控制码(一个字节)、数据标识(4个字节)、有效数据长度(一个字节)、有效数据、帧内校验CS(一个字节)、帧结束符16、帧校验码CRC(两个字节),而RS485数据帧是把载波帧的前面的标识7E AA和原创 2010-09-17 11:12:00 · 1187 阅读 · 1 评论 -
FireBird数据库设计技巧
FireBird数据库以它的短小而精悍著称,其性能可以和大型的MSSQL SERVER、Oracle相媲美,具有其它优秀数据库的一些特点,而它自身又有一些它的特点,因此在设计数据库时也有一些和其它数据库的技巧。原创 2010-09-20 11:18:00 · 1240 阅读 · 0 评论 -
Firebird数据库备份与恢复
<br />Firebird数据库备份:把下面的一行保存为备份.bat文件,在备份时只要双击运行即可,非常方便<br />gbak.exe -b 192.168.4.146:Data.FDB D:/Data.fbk -user sysdba -password masterkey<br />当原来的数据库有很多数据时,可能超过10G,这时备份会非常花时间,可以先把数据库的元数据备份下来,根据需要再用sql把要用的表导入即可:<br />gbak.exe -b -m 192.168.4.3:pim D:/pi原创 2010-09-08 13:44:00 · 8484 阅读 · 1 评论 -
Firebird使用支招
<br />1、在FireBird中,使用条件时一定要用括号括起来,如while (i<=9) do begin ... end;<br /> <br />2、在Delphi中使用SQL语句时,SQL中的字符参数一定要用单引号引起来,如sql:=format('Execute Procedure P_Insert(<br />原创 2011-02-14 14:55:00 · 965 阅读 · 0 评论 -
D7下Int64类型的参数传递方法
如果在数据库设计中要用到Int64类型的字段,在程序在动态查询到这个字段,传递参数时会出现问题,因为D7还没支持Query1.Params.ParameterByName('f_FiledName').AsInt64这种用法,估计是D7的一个Bug吧,但必须要用这种类型怎么办?原创 2011-02-18 12:59:00 · 841 阅读 · 0 评论 -
delphi开发activexObject传递参数的两种方法:
本来要和delphi说再见了,没想到今天还会用到它,这个给无数程序员带来欢乐和泪水的工具,有了你,程序员的世界多彩多资!delphi开发activexObject传递参数有两种方法:1,在定义的方法中添加参数,然后在html页面中把参数传递进方法中;procedure TWebPrint.PrintReportMaterial(const fk_req: WideString);b原创 2015-09-08 14:55:35 · 2584 阅读 · 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 · 6063 阅读 · 1 评论 -
再谈指针运算和地址加减运算的区别
先上代码,有下面一段代码://下面是读取线状目标的记录内容的代码:procedure OnReadLineShp(ShpFileName:String);var FileHandle:integer; RecordNumber:integer; ContentLength:integer; num:integer; shapeType:integer;原创 2012-08-31 09:59:27 · 3054 阅读 · 0 评论 -
delphi Socket通信的控件使用和API使用的区别
delphi Socket通信的控件使用和API使用的区别原创 2012-06-19 16:50:08 · 1863 阅读 · 0 评论 -
解决“串口接收数据时被截断”的问题
解决“串口接收数据时被截断”的问题今天是忙里愉闲的写了这篇文章,我写的一个串口测试程序,用的是PComm.dll进行通信的,但在有的电脑上运行时,接收数据只要有点长度,比如30个字节,数据就会被截断,并不是所有电脑都会出现这样的问题,害得同事说是不是用的控件有问题,其实,这知道,PComm.dll这样的组件,技术已经相当的成熟了,做这个控件,人家可是大厂,就靠这吃饭的,再说了,几十年的原创 2012-04-18 13:44:08 · 12047 阅读 · 4 评论 -
delphi多线程释放
delphi创建了多线程后,要想在执行完成后自动释放所用的资源,可以在构造函数Constructor里指定线程结束时的执行事件,OnTerminate:=FinishedEvent;这样,当一个线程运行完成后,就会自动调用这个过程,当然,在构造函数里还必须先有这两句:inherited Create(CreateSuspended);FreeOnTerminate := true;让它原创 2011-12-30 08:37:22 · 5015 阅读 · 0 评论 -
NEC单片机内存数据存储形式
一个unsigned long32位无符号整数在内存中的存放形式如:unsigned long32 temp32;temp32=0x006F508A,如果temp32的地址为0xfe824,...0xfe823 ...0xfe824 8a 50 6f 00原创 2011-10-11 16:56:31 · 1035 阅读 · 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 · 1954 阅读 · 0 评论 -
PComm引起的内存占用过多
<br />在一次使用PComm中,发现CPU占用超过50%,当没有接收数据时,%1~2%左右,而接收数据时在40%~60%之间,但数据量很少呀,难道是我的接收线程的问题,我是用一个线程一直读数据,如果读取的长度小于1,重新读,一般来讲,这肯定会引起CPU一直忙不停的读,但以前并没有出现这样的情况呀,也是这样写的,忽然想起了串口有个读超时的设置,难道是读超时为0,所以CPU一直在读,结果加了超时设置后:sio_SetReadTimeouts(1,2000,40),就正常了,说明我的判断是正确的。初学的朋友一原创 2011-05-03 23:48:00 · 1140 阅读 · 0 评论 -
Delphi语法误区
<br /><br />使用Delphi传递参数时,会根据需要采用两种方法:传地址,传参数,<br />传地址传的是变参,就是在函数体或过程内部对这个参数改变了,返<br />回时这个参数就改变了,而传参数是值参调用,在函数体内部或过程<br />内部对这个参数进行修改,返回时这个参数还是以前的值,变参调用<br />时,在参数前面加上关键字Var即可,当有多个参数要用作变参时,<br />可以用下面的语法:<br />Var Param1,Param2,Param3:string;<br />当然有一个前原创 2011-05-11 22:30:00 · 608 阅读 · 0 评论 -
虚拟串口调试技巧
虚拟串口调试技巧原创 2010-09-06 13:29:00 · 2347 阅读 · 0 评论 -
DBGridEh3.6和DBGridEh5.2的区别
DBGridEh3.6和DBGridEh5.2的区别,如果一个数据库字段用1和0 表示是否选择之类的Boolean类型,在DBGridEh里这个字段可设为原创 2010-09-06 11:09:00 · 1168 阅读 · 0 评论 -
FireBird的两个误区:动态参数传递出错Incorrect values within SQLDA structure
动态参数Incorrect values within SQLDA structure原创 2010-06-04 11:40:00 · 1760 阅读 · 0 评论 -
C++Builder指针参数转换为delphi指针参数
在BCB中,一DLL定义如下://波形参数typedef struct { unsigned int mDots; //波形点数 double mDacclk; //时钟 double mWaveData[2*262144]; //波形数据 double mNoise[2*262144]; double mGenWave[2原创 2010-04-15 13:00:00 · 1707 阅读 · 0 评论 -
delphi与C++Builder指针和数组转换
指针:CBC:StartPt.x = (int)(StrToInt(mShape->Left)+i*StrToInt(mShape->Width)/Dots);delphi:StartPt.x := trunc((mShape.Left)+i*(mShape.Width)/Dots); 另外看到人家这样:BCB: (TYourType*)Senderdelp原创 2010-04-15 10:51:00 · 2009 阅读 · 0 评论 -
一个奇怪的BCB的函数指针调用
有这样一个函数: //计算规则波形的波形数据void __stdcall LAI300_CacuWavePara( int WaveType, int xCycles, int yCycles,原创 2010-04-15 11:56:00 · 1168 阅读 · 0 评论 -
"DBGridEh was compiled with a different version of GridsEh.TGridDrawState"错误解决
在我把一个原来的D7项目移动CBX上编译,出现了DBGridEh was compiled with a different version ofGridsEh.TGridDrawState" 这个错误,工程原来设了SearchPath,是我用D7时自已安装的Ehlib的路径,我以为CBX自带的Ehlib和我原来的版本冲突,把searchpath删除 之后,还是不行,上G一搜,什原创 2010-01-11 11:47:00 · 5005 阅读 · 0 评论 -
DateTimeToStr()与FormatDateTime()的区别,时间格式不对引起的错误解决
在数据库中插入日期时间时,当系统使用的是12小时制式(正常的时间格式为24小时制式),如果使用DateTimeToStr(Now)函数把当前时间 转化为字符串,会得到"2010-3-17 下午 3:05:43"这样的时间,可能在执行SQL插入时,会出现错误,这时可以使用FormatDateTime()函数, 先把日期时间格式化后再操作即可.FormatDateTime的格式为:Fo原创 2010-03-17 15:32:00 · 7251 阅读 · 0 评论 -
关于多个按钮代码重用方法
关于多个按钮代码重用方法,窗体上有24个按钮,每个按钮执行的事件一样,但要根据各自的属性下发不同的标识到串口中,则有两种方法可以 使它们共用一个事件过程,一种是直接用Sender是否等于某个控件来判断是哪个按钮进行了操作,第二种是用遍历组件的方法,来取得某一种 控件的属性数据,这样省了大量的代码。 procedure TForm1.ToolButton1Click(Send原创 2010-03-12 11:31:00 · 891 阅读 · 0 评论 -
"unknow ISC Error 0"解决方法
"unknow ISC Error 0"解决方法: 使用DBExpress开发FireBird数据库,如果使用了时间动态参数,如果参数的数据类型使用不对,如果使用一般的时间数据类型ftDateTime,会 产生上面的错误,因为FireBird数据库是使用TimeStamp表示时间,所以动态参数的数据类型也有相应的ftTimeStamp。查看Help可以看 到,f原创 2010-03-07 21:30:00 · 1890 阅读 · 0 评论 -
Delphi创建Foxpro(DBF)文件
用SQL语句创建DBF数据库,如果有Memo字段用Memo不行,在Database Desktop里用Memo也不行,试了N次后,在Table的字段里看到ftMemo和ftBlob,查看帮助,有下列内容:type TBlobType = ftBlob..ftOraClob;C++ syntax:typedef TFieldType TBlobType;DescriptionTB原创 2010-01-25 14:33:00 · 3136 阅读 · 0 评论 -
在IBExpert中跨库查询不同数据库表、不同版本数据库
原来开发时使用的数据库版本太高,使用的是FB2.11,而在把原来的低版本(FB2.0)的数据库的数据导入后,放到机器上运行,却发现怎么 也登录不了,装了FB2.11后,还是提示unsupported on-disk structure for file ;found 11.1,support 11.0,没办法,可能是 FB2.11还是存在bug,重新安装了FB2.0后,建了一个库,原创 2010-01-27 22:20:00 · 3312 阅读 · 0 评论 -
Delphi重建与删除Foxpro(DBF)数据库索引文件CDX
我发现DBF文件数据的一个大秘密,因为要用到TBatchMove操作DBF文件,需要使用索引,如果这个DBF文件没有包含索引,可以使用下面的 SQL建立索引: create index 索引名 on "表名.dbf"(字段名); 但是如果这个DBF文件已经包含索引,可是这个CDX索引文件坏了或是丢失了,用上面的SQL会提示Index does not exist.File原创 2010-01-25 09:26:00 · 5011 阅读 · 0 评论 -
CLXBase7绿色Delphi使用心得
用了近半年的绿色Delphi,刚开始觉得它太笨重了,特别是才启动的时候太慢了,在D7下这个启动时间可以启动2、3个D7了,而且对它的一些人性化 的设置、热键不晓得,还报这样哪样的错,网上的资料也太少了,找不到解决办法,只有强忍着,现在用起来,可谓是得心应手了。 使用CLXBase确实方便多了,不原创 2010-04-19 13:04:00 · 2595 阅读 · 1 评论 -
向其它程序的TDataGrid发送数据的方法:
向其它程序的TDataGrid发送数据的方法: 在向其它程序的TText控件发送数据时,可以用SendMessage(Handle, WM_SETTEXT, 0, Cardinal(要设置的字符)),其中Handle为要发送 的控件的句枸,可以用Handle:=FindWindow(nil,标题)获得,这样就相当于在哪个Text中填写字符,但要向TDataGrid控件中的单原创 2010-04-10 14:34:00 · 914 阅读 · 1 评论 -
解决DBGridEh遍历记录后不移动当前行位置的方法
解决DBGridEh遍历记录后不移动当前行位置的方法原创 2010-07-30 11:55:00 · 4488 阅读 · 1 评论 -
SPComm接收数据的两种方法
在使用SPComm接收数据时,要用到指针,函数原型为:procedure TForm1.commReceiveData(Sender: TObject; Buffer: Pointer; BufferLength: Word);beginend;其收到数据时,它提供了一个指针Buffer,指向这个存放数据的缓冲区的首地址,长度为BufferLength,这样就知道收到的是什么东东了,可以有两种方法取出其中内容:var pc:PChar;begin pc:=PChar(Buffer); Memo1.L原创 2010-06-01 10:03:00 · 6661 阅读 · 0 评论