学无止境
摘要: 在windows中内存的分配一次是4个字节的。而packed按数据类型进行内存的申请和分配,读取时也是按照数据型的大小进行指针定位,这样速度要慢一些,因为需要额外的时间来进行指针的定位。因此如果不用packed的话,delphi将按一次4个字节的方式申请内存,因此如果一个变量没有4个字节宽的话也要占4个字节!这样就浪费了,你可以用packed关键字取消这种优化。例子:typemyrec = packed recordn1 : integer; 4个字节n2 : shortint; 1个字节end;sizeof(myrec)------ 5typemyrec = recordn1 : integ 阅读全文
posted @ 2011-09-07 16:34 DHT 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 1.工程文件(Delphi Project File)工程文件是一个特殊的单元文件,是应用程序的主程序,它管理应用程序中的其他文件,该文件的拓展名是*.dpr,是一个文本文件2.窗体文件(Delphi Form)窗体文件存储有关窗体中对象的信息,它是一个二进制文件,窗体文件的拓展名为*.dfm,每个窗体文件都有一个与之相对应的单元文件,如有一个名为Unit1.dfm的窗体文件,就有一个名为Unit1.pas的单元文件与之对应。Unin23.单元文件(Pascal File)用于存储与程序功能有关的常量、变量、数据类型、函数与过程的定义,单元文件的拓展名为*.pas,是一个文本文件4.资源文件( 阅读全文
posted @ 2011-09-07 15:53 DHT 阅读(329) 评论(0) 推荐(0) 编辑
摘要: strtodate('2001-12-30') 出现'is not a valid date '错误查看 控制面板->区域设置->日期发现日期 分隔符号用了 '/' 如果改为'-'就没有问题解决办法:在程序中引入:DateUtils单元加入:DateSeparator := '-';ShortDateFormat:= 'yyyy-mm-dd';然后使用strtodate('2001-12-30') 阅读全文
posted @ 2011-09-07 15:52 DHT 阅读(454) 评论(0) 推荐(0) 编辑
摘要: try ...excepton e:exception do begin //出错回滚 dm.OraSession.Rollback; MessageBox(Handle,pchar(e.message),'保存出错',MB_OK + MB_ICONSTOP); //恢复事务自动提交 dm.OraSession.AutoCommit := true; OraQuery1.AutoCommit := true; StringGrid1.SetFocus(); StringGrid1.Row := 1; StringGrid1.Col := 3; exit... 阅读全文
posted @ 2011-09-07 15:52 DHT 阅读(384) 评论(0) 推荐(0) 编辑
摘要: DBCheckbox的初始化包括:1.绑定数据源: 可直接设置属性,也可在程序里设置 DBCheckbox.DataSource:=DataSource1; DataSource.DataSet:=ADOQuery; DBCheckbox.DataField:=Field1; 注:DBCheckbox捆绑的数据字段最好是Nnumber(1)类型;2.设置ValueChecked和ValueUnchecked 在属性栏中将ValueChecked设为1,ValueUnchecked设为03.只这些还不够,当新添加一条数据的时候,Field1为空,所以DBCheckbox显示第三种状态。后来想这在 阅读全文
posted @ 2011-09-07 15:51 DHT 阅读(1739) 评论(2) 推荐(0) 编辑
摘要: 对于模态对话框,ModalResult一旦被赋值,就会自动关闭。我遇到一个情况:1.在Form1中点击button1通过ShowModal打开模式窗口Form22.在Form2中点击button2通过ShowModal打开模式窗口Form33.在Form3退出的后,Form2同时出退出了查了很久发现原来是Form2中的button2的ModalResult属性设置了mrAll,改为mrNone随即解决问题 阅读全文
posted @ 2011-09-07 15:50 DHT 阅读(627) 评论(0) 推荐(0) 编辑
摘要: unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, xmldom, XMLIntf, msxmldom, XMLDoc, msxml,StdCtrls;type TForm1 = class(TForm) btn1: TButton; XMLDocument1: TXMLDocument; procedure btn1Click(Sender: TObject); private { Private declarations } 阅读全文
posted @ 2011-09-07 15:49 DHT 阅读(1151) 评论(0) 推荐(0) 编辑
摘要: //TStringList常用方法与属性:varList:TStringList;i:Integer;beginList:=TStringList.Create;List.Add('Strings1');{添加}List.Add('Strings2');List.Exchange(0,1);{置换}List.Insert(0,'Strings3');{插入}i:=List.IndexOf('Strings1');{第一次出现的位置}List.Sort;{排序}List.Sorted:=True;{指定排序}List.Count;{ 阅读全文
posted @ 2011-09-07 15:49 DHT 阅读(157) 评论(0) 推荐(0) 编辑
摘要: <?xml version= "1.0 " encoding= "gb2312 "?><File> <aa> <bb> bb </bb> </aa> <Handle> 客户端加密,服务器端解密 </Handle> <FileId> 文件ID </FileId> <FileName> 文件名 </FileName> <FileSize> 文件大小 </FileSize> <Upload 阅读全文
posted @ 2011-09-07 15:48 DHT 阅读(417) 评论(0) 推荐(0) 编辑
摘要: uses DateUtils;function StartOfTheYear(const AValue: TDateTime): TDateTime;function EndOfTheYear(const AValue: TDateTime): TDateTime;function StartOfAYear(const AYear: Word): TDateTime;function EndOfAYear(const AYear: Word): TDateTime;function StartOfTheMonth(const AValue: TDateTime): TDateTime;func 阅读全文
posted @ 2011-09-07 15:47 DHT 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 你有没有觉得这个控件在输入日期时不太方便? 输完年后还要按一下右键头才能定位到月,然后再按一下右键头定位到日,输完按回车或者TAB还不能转到下一输入控件,今天我就来解决这个问题:输入时让光标自动移动,比如四位年份输完了光标立即跳到MM上;输完按回车直接去到下一控件;如果是从另一个控件转入此控件,直接定位到月进行输入,因为通常年都不需要修改。以下是实现代码:procedure TFrm_AjJg_Input.DateTimePicker_CHECKDATEChange(Sender: TObject);begin keybd_event(vk_right,0, KEYEVENTF_EXTE... 阅读全文
posted @ 2011-09-07 15:47 DHT 阅读(573) 评论(0) 推荐(0) 编辑
摘要: string plong k,kkkk=1, i , l_idblob a4int jblob l_blobfor j=1 to ds_1.rowcount( )l_id = ds_1.getitemnumber( j, "id")selectblob picture into :l_blob from tbImage where id=:l_id using sqlca;i = FileOpen(temp_path+"\temp_photo"+trim(string(l_id))+".jpg",StreamMode!,Write!, 阅读全文
posted @ 2011-09-07 15:45 DHT 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 在窗口上建一个OLE控件,OLE控件的类型选shockwave Flash Objectole_1.object.movie(ls_path+'\3dball.swf') //路径要完整路径ole_1.object.loop = trueole_1.object.play() 阅读全文
posted @ 2011-09-07 15:44 DHT 阅读(357) 评论(0) 推荐(0) 编辑
摘要: 将编号字段设置成主键或唯一键.(如果无法设置成主键或唯一键,另建一个表专门维护编号) 插入的时候,如果出现冲突,就再重新取编号,再插入就可以了. 这样的效率高于用锁. 因为用锁要锁住整个表,直到插入操作完成. 这样,即使正常的读数据也会受到影响到. 举个例子来说 不锁表的情况: 假设你要插入一条记录,那么你就取最大编号:不是N+1,然后进行插入 如果在你取编号后,插入记录前,又有另一个用户要插入记录,那很显然,因为你的记录还未插 入,那另一个用户取得的编号仍然是N+1,和你的一样,这样就导致了编号重复. 只锁最大记录的情况: 假设你要插入一条记录,那么你就取最大编号:不是N+1,然后进行插入 阅读全文
posted @ 2011-09-07 15:44 DHT 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 先在窗口上拖一个Microsoft Web Browser上来,调整好大小。通过PB的对象浏览器察看我们可以查到它支持的属性,方法,事件。最主要的用这么几个:1. Navigate(string url)2.ExecWB (nCmdID, nCmdExecOpt, [pvaIn], [pvaOut] )下面我们来通过代码实现一个打开网页并弹出另存,然后直接打印的程序。(a).nCmdIDOLECMDID_OPEN = 1,OLECMDID_NEW = 2,OLECMDID_SAVE = 3,OLECMDID_SAVEAS = 4,OLECMDID_SAVECOPYAS = 5,OLECMDID 阅读全文
posted @ 2011-09-07 15:43 DHT 阅读(439) 评论(0) 推荐(0) 编辑
摘要: 在运行 Windows Vista、Windows 7、Windows Server 2008 或 Windows Server 2008 R2 的计算机上,可能无法打开需要使用 Windows 帮助 (WinHlp32.exe) 程序的帮助文件。本文提供有关帮助您修复此问题的下载的信息。从 Windows Vista 和 Windows Server 2008 开始的 Windows 版本中,Microsoft 停止包含 32 位的帮助文件查看器。为了支持仍依靠旧 .hlp 文件的客户,Microsoft 下载中心提供用于 Windows Vista、Windows 7、Windows Se 阅读全文
posted @ 2011-09-07 15:42 DHT 阅读(3036) 评论(0) 推荐(0) 编辑
摘要: 1.请使用直连方式,不要使用odbc,直连方式可以带参数调用存储过程,并可以取得返回值sqlca.AutoCommit = trueDECLARE p_1 PROCEDURE &FOR jz_return_charge_ladder @begin_date=:date11, @end_date=:date22, @clientno=0,@bourse=0,@jz_id=0using sqlca;Execute p_1;IF sqlca.sqlcode <> -1 thencommit using sqlca;elsemessagebox('提示',' 阅读全文
posted @ 2011-09-07 15:39 DHT 阅读(871) 评论(0) 推荐(0) 编辑
摘要: 安装pb时,如果你只选择了安装ASA与PB,那么在安装完ASA后,有时会出提示setup is running这个提示,并一直停留在这里不能完成安装,这是因为安装程序其实弹出了一个提示窗口内容一般是说你还有什么没有选择安装,但是出于某种不知原因,此弹出窗口被放在后面一层,显示不出来,你无法操作,因此就不能继续进行。 这时你一般可以使用alt + tab转换一下,或者关掉除了安装程序外的其他所有程序,这样以来,这个神秘的窗口基本就会昌出来了。剩下的事就很简单了。 阅读全文
posted @ 2011-09-07 15:38 DHT 阅读(6064) 评论(4) 推荐(0) 编辑
摘要: var xmlHttp; function createXMLHttpRequest() { if (window.ActiveXObject) { xmlHttp = new ActiveXObject(""Microsoft.XMLHTTP""); } else if (window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); } } function handleStateChange() { if(xmlHttp.readyState == 4) { if(xmlHttp.status == 阅读全文
posted @ 2011-09-07 09:54 DHT 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 先去下载google ajaxslt的源码包1、用xmlhttprequest从服务器获得xml数据放于id="xml"的div中也可以从各种封装的xmlhttprequest框架中直接获得xml,这种方式更好一些2、对应xsl放置于id="xslt"的div中3、通过Ajaxslt组合成html,结果将显示于id="htmldisplay"的div中加载如下js<script src="../misc.js" type="text/javascript"></script&g 阅读全文
posted @ 2011-09-07 09:54 DHT 阅读(217) 评论(0) 推荐(0) 编辑