07 2008 档案
摘要:CxGrid用法- -使用cxGrid有一些时间了,在这里总结一下使用cxGrid的一些方法,希望给刚开始接触cxGrid的人一些帮助。1.简单介绍:cxGrid右下方的cxGrid1Level1是表示Grid表的层,cxGrid可以有多层,这相当于集合了PageControl的功能,而cxGrid...
阅读全文
摘要:RS-232、RS-422与RS-485串口标准简介一、RS-232C、RS-422与RS-485的由来 RS-232、RS-422与RS-485都是串行数据接口标准,最初都是由电子工业协会(EIA)制订并发布的,RS-232在1962年发布,命名为EIA-232-E,作为工业标准,以保证不同厂家产品之间的兼容。RS-422由RS-232发展而来,它是为弥补RS-232之不足而提出的。为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s,传输距离延长到4000英尺(速率低于100kb/s时),并允许在一条平衡总线上连接最多10个接收器。R
阅读全文
摘要:{------------------------------------------------------------------------------- 过程名: 16进制数相加效验和程序 作者: 陈新光 日期: 2008.07.24 参数: AStr: string; AIndex: Integer(从第几个字符开始计算) 返回值: string-------------------------------------------------------------------------------}function GetCheckStr(AStr: string; AIndex
阅读全文
摘要: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
阅读全文
摘要: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
阅读全文
摘要:目前,利用 Delphi实现串口通信的常用的方法有 3种:一是利用控件,如 MSCOMM控件和 SPCOMM控件;二是使用 API函数;三是调用其他串口通信程序。其中利用 API编写串口通信程序较为复杂,需要掌握大量的通信知识。相比较而言,利用 SPCOMM控件则相对较简单,并且该控件具有丰富的与串口通信密切相关的属性及事件,提供了对串口的各种操作,而且还支持多线程。下面本文结合实例详细 介绍 SPCOMM控件的使用。 SPCOMM的安装 1.选择下拉菜单 Component中的 Install Component选项,弹出如图 1所示的窗口。 图 1 在 Unit file name处填写
阅读全文
摘要: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;
阅读全文
摘要: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']))
阅读全文
摘要: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
阅读全文
摘要://设置IP和Port RemoteUdpConnection1.RemoteIp:=Edit1.Text; RemoteUdpConnection1.RemoteLoginPort:=StrToInt(Edit2.Text); RemoteUdpConnection1.RemoteDataPort:=StrToInt(Edit3.Text); //启动登陆(StartLogin属于非阻塞的方法) RemoteUdpConnection1.StartLogin;procedure TForm1.RemoteUdpConnection1Connect(OnLine: Boolean);//on.
阅读全文
摘要:--声明游标declare my_cursor cursor for select * from info--删除游标资源deallocate my_cursor--打开游标,在游标关闭或删除前都有效open my_cursor--关闭游标close my_cursor--声明局部变量declare @id int,@name varchar(20),@address varchar(20)--定位到指定位置的记录fetch absolute 56488 from my_cursor into @id,@name,@addressselect @id as id,@name as name,@
阅读全文
摘要:网格(Grid)控件,可直观描述二维信息。因此它具有横向和纵向二轴,就是一个二维表格。1、TCustomGrid为所有网格控件的父类,定义了网格控件的主要特征和网格控件的主要功能。在这里,我们着重要了解的是它的两个保护级(protected)方法:(1)procedure Paint;所有TWinControl的子类都可通过Paint来绘制自身外形。在TCustomGrid.Paint中,主要实现两个功能:绘制网格线和填充网格数据。其中,网格数据的填充具体实现由下述的DrawCell完成。在后面的内容,我会结合源代码详细解释Paint。2)procedure DrawCell(ACol, AR
阅读全文
摘要:function GetNumFromStr(const str: String;const hex:boolean=false): String;vari:integer;charset:Set of char;beginif hex thencharset:=['0'..'9','a'..'f','A'..'F','.']elsecharset:=['0'..'9','.'];for i := 1 to Length(str) do
阅读全文
摘要:function SaveAsExcelFile(StringGrid: TStringGrid; FileName: string):boolean;const xlWBATWorksheet = -4167;var Row, Col: integer; GridPrevFile: string; XLApp, Sheet: OLEVariant;begin Result := false; XLApp := CreateOleObject('Excel.Application'); try XLApp.Visible := False; XLApp.Workbooks.Ad
阅读全文
摘要:delphi操作word一、Delphi程序启动Word采用CreateOleObjects的方法来启动Word,调用VBA代码,具体实现过程为:首先使用GetActiveOleObject('Word.Application')判断当前内存中是否存在Word程序,如果存在,则直接连接,如果没有Word程序,则使用CreateOleObject('Word.Application')启动Word二、Delphi程序新建Word文稿格式:WordDocuments.Add(Template,NewTemplate,DocumentType,Visible)Temp
阅读全文
摘要:作一个好经理的几点建议:优先考虑客户的满意程度;优先考虑团队中每个人员的成长和发展;优先考虑你的产品质量;优先考虑保持你的工作进度;你能一直坚持以上这些做法。作一个好的分析员的几点建议:把更多的时间花在客户身上;使用一种以上的分析方法,以提供一个合理的检验;努力寻找简化问题的方法,而不是使问题复杂化;关心数据和程序;注重问题的分析。作一个好设计者的几点建议:花更多的时间同分析员在一起;不仅仅考虑一个设计;了解对结构的需要;尽量寻求不用编码就能解决问题的方法;试图创造一个好的设计,而不是完美的设计;在进行设计审查时,请程序员到场。作一个好程序员的几点建议:花更多的时间同设计者在一起;在编码之前作
阅读全文
摘要:回调函数: 回调函数是这样一种机制:调用者在初始化一个对象(这里的对象是泛指,包括OOP中的对象、全局函数等)时,将一些参数传递给对象,同时将一个调用者可以访问的函数地址传递给该对象。这个函数就是调用者和被调用者之间的一种通知约定,当约定的事件发生时,被调用者(一般会包含一个工作线程)就会按照回调函数地址调用该函数。 这种方式,调用者在一个线程,被调用者在另一个线程。 在Windows API中有一些函数使用回调函数,例如CreateThread、SetWindowLong等。对应的回调函数定义为如下形式: function CallBackFunc(Wnd: HWND; Msg, WPara
阅读全文
摘要:onclick是TNotifyEvent类型; type TNotifyEvent = procedure(Sender: TObject) of object; 就是说他是一个过程,而且是有一个TObject的参数,并且包含在一个对象里~~ 关于类的方法: (不是类方法,这里指object pascal中的静态方法,相当于C++的成员函数) 1: 带有隐含参数 self 2: 方法是方法,数据是数据。 3:Delphi的方法是一个结构 type TMethod = record ...
阅读全文
摘要:Delphi自动管理的内存 Delphi中原子变量,如Integer、Boolean、Record、枚举等都是在作用域内编译器自动申请内存,出了作用域自动释放;另外,字符串、Variant、动态数组、接口也是由Delphi自动管理。 这些变量都是在栈中存储的,除了接口。另外,Variant是程序员用函数手工创建的,例如VarArrayCreate;动态数组也是程序员用函数手工创建的,例如SetLength,但这两种情况都不需要程序员自己释放。 另外,还有一种变量需要注意,是使用Threadvar声明的变量,它的作用域是一个线程。这主要用在编写线程函数时,每一个线程使用一个线程局部存储。 程序.
阅读全文
摘要:句柄是WONDOWS用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图,GDI对象等等。句柄实际上是一个标识符,是用来标识对象或者项目的,句柄是一个 32 位的正整数,Microsoft® Windows® 用它来识别窗体或其他对象,例如字体或位图。应用程序几乎总是通过调用一个WINDOWS函数来获得一个句柄,之后其他的WINDOWS函数就可以使用这个句柄,以引用相应的对象。在WINDOWS编程中会用到大量的句柄,比如:HINSTANCE(实例句柄),HBITMAP(位图句柄),HDC(设备描述
阅读全文
摘要:1.从现象上看:指针在运行时可以改变其所指向的值,而引用一旦和某个对象绑定后就不再改变 2.从内存分配上看:程序为指针变量分配内存区域,而引用不分配内存区域 3.从编译上看:程序在编译时分别将指针和引用添加到符号表上,符号表上记录的是变量名及变量所对应地址。指针变量在符号表上对应的地址值为指针变量的地址值,而引用在符号表上对应的地址值为引用对象的地址值。符号表生成后就不会再改,因此指针可以改变指向的对象(指针变量中的值可以改),而引用对象不能改。指针与引用看上去完全不同(指针用操作符“*”和“->”,引用使用操作符“. ”),但是它们似乎有相同的功能。指针与引用都是让你间接引用其他对象。
阅读全文

浙公网安备 33010602011771号