摘要: function SelectDirectory(Handle: hwnd; const Caption: string; //更改目录 const Root: WideString; out Directory: string): Boolean;var lpBI: _BrowseInfo; Buf: array[0..MAX_PATH] of char; ID: IShellFolder; Eaten, Att: Cardinal; rt: pItemIDList; initdir: PWideChar;begin Result := False; lpbi.hwndOwner := Ha 阅读全文
posted @ 2008-07-23 19:28 delphi中间件 阅读(364) 评论(0) 推荐(0)
摘要: procedure EnumComPorts(Ports: TStrings);var KeyHandle: HKEY; ErrCode, Index: Integer; ValueName, Data: string; ValueLen, DataLen, ValueType: DWORD; TmpPorts: TStringList;begin ErrCode := RegOpenKeyEx( HKEY_LOCAL_MACHINE, 'HARDWARE/DEVICEMAP/SERIALCOMM', 0, KEY_READ, KeyHandle); if ErrCode &l 阅读全文
posted @ 2008-07-23 19:09 delphi中间件 阅读(309) 评论(0) 推荐(0)
摘要: 目前,利用 Delphi实现串口通信的常用的方法有 3种:一是利用控件,如 MSCOMM控件和 SPCOMM控件;二是使用 API函数;三是调用其他串口通信程序。其中利用 API编写串口通信程序较为复杂,需要掌握大量的通信知识。相比较而言,利用 SPCOMM控件则相对较简单,并且该控件具有丰富的与串口通信密切相关的属性及事件,提供了对串口的各种操作,而且还支持多线程。下面本文结合实例详细 介绍 SPCOMM控件的使用。 SPCOMM的安装 1.选择下拉菜单 Component中的 Install Component选项,弹出如图 1所示的窗口。 图 1 在 Unit file name处填写 阅读全文
posted @ 2008-07-23 19:07 delphi中间件 阅读(1586) 评论(0) 推荐(0)
摘要: function StrToHexStr(const S:string):string;//字符串转换成16进制字符串var I:Integer;begin for I:=1 to Length(S) do begin if I=1 then Result:=IntToHex(Ord(S[1]),2) else Result:=Result+' '+IntToHex(Ord(S[I]),2); end;end; 阅读全文
posted @ 2008-07-23 19:02 delphi中间件 阅读(438) 评论(0) 推荐(0)
摘要: function HexStrToStr(const S:string):string;//16进制字符串转换成字符串var t:Integer; ts:string; M,Code:Integer;begin t:=1; Result:=''; while t<=Length(S) do begin //xlh 2006.10.21 while (t<=Length(S)) and (not (S[t] in ['0'..'9','A'..'F','a'..'f'])) 阅读全文
posted @ 2008-07-23 18:58 delphi中间件 阅读(413) 评论(0) 推荐(0)
摘要: AdvStringGrid//从文件中加载asg.LoadFromCSV(Path+FileName);//清空所有行asg.ClearRows(0,asg.RowCount-1);//保存asg.SaveToCSV(Path+'Test.csv');ColCount := 41; {总列数}RowCount := 3; {总行数}FixedRows := 2; {表头行数}FixedCols := 2; {表头列数} DefaultColWidth := 18; {设缺省列宽} DefaultRowHeight := 18; {设缺省行高} ColWidths[0] := 5 阅读全文
posted @ 2008-07-23 10:18 delphi中间件 阅读(790) 评论(0) 推荐(0)