易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : delphi

DELPHI消息的处理流程


消息的处理流程,流程如下:
其派发处理过程详细如下:
 注意:TWinControl里面WndProc有调用系统API DefWindowProc,该函数调用缺省的窗口过程来为应用程序没有处理的任何窗口消息提供缺省的处理。而TWinControl里面DefaultHandler又调用了系统API CallWindowProc,该函数CallWindowProc将消息信息传送给指定的窗口过程。
最后消息处理过程,以WM_LBUTTONDOWN消息为例如下:
这里就可以注意一下:MouseDown()函数是一个dynamic方法,因此可以先覆盖MouseDown()函数来处理自己的一些事件,然后用inherited来调用MouseDown()来执行组件里面的OnMouseDown代码
......

Delphi 条件判断那些事

技术交流,DH讲解. 之前照着天书夜读,用Delphi来弄了下循环体,现在就来弄一下条件判断吧.
首先肯定是我们经常看见的IF语句咯. Var
I: Integer;
Begin
I:= 99;
If (I> 0)And (I< 0) Then
Writeln('I>0')
Else
If (I> 10)And (I< 100) Then
Writeln('I>10 and I100');
End.
反汇编出来会是什么样子的呢?
Project5.dpr.12: I:= 99;
004AC44C B863000000 mov eax,$00000063
Project5.dpr.13: If (I> 0)And (I< 0) Then
004AC451 85C0 test eax,eax
004AC453 7E1F jle $004ac474
004AC455 85C0 test eax,eax
004AC457 7D1B jnl $004ac474
Project5.dpr.14: Writeln('I>0')
004AC459 A1DC314B00 mov eax,[$004b31dc]
004AC45E BAC4C44A00 mov edx,$004ac4c4
004AC463 E874BAF5FF call @Write0UString
004AC468 E8BF89F5FF call @WriteLn
004AC46D E83E7FF5FF call @_IOTest
004AC472 EB3E jmp $004ac4b2
Project5.dpr.16: If (I> 10)And (I< 100) Then
004AC474 83F80A cmp eax,$0a
004AC477 7E20 jle ......

Delphi 究竟产生了几个String对象的问题

技术交流,DH讲解. 这个是在CSDN上面看见的问题.我说说自己的想法. procedure TForm1.btn1Click(Sender: TObject);
var
Str:String;
begin
Str:='abc' ;

Str:=str+'d';

str:=copy(Str,1,3);

str:=UpperCase(str);
end;
问题1答案:2010下
Unit4.pas.29: begin
005144E0 55 push ebp
005144E1 8BEC mov ebp,esp
005144E3 6A00 push $00
005144E5 6A00 push $00
005144E7 33C0 xor eax,eax
005144E9 55 push ebp
005144EA 6856455100 push $00514556
005144EF 64FF30 push dword ptr fs:[eax]
005144F2 648920 mov fs:[eax],esp
Unit4.pas.30: Str:='abc' ;
005144F5 8D45FC lea eax,[ebp-$04]
005144F8 BA70455100 mov edx,$00514570 //这块内存中存放的是 abc 字符串对象
005144FD E8E631EFFF call @UStrLAsg //跟进这个函数,由于abc块处本来就是Unicode的,所以不需要转换,只是引用次数加一,也就是这里是 编译器一开始就产生了一个 abc 字符串对象
Unit4.pas.32: Str:=str+'d';
00514502 8D45F ......

Delphi正则表达式使用方法(TPerlRegEx)

Delphi正则表达式使用方法(TPerlRegEx)
正 文:
    使用Delphi开发软件无疑是一种比较高效率的方式,完全对象的语言,严格控制的语法,可视化开发环境的性能,编译器的速度和已编译代码的效率,编程语言的功能及其复杂性,数据库结构的灵活性和可扩展性,框架对设计和使用模式的扩充无疑都是delphi身上的光芒。
    最近飘易使用Delphi开发了一套工具,由于和网络应用相关的东西较多,需要使用正则表达式,而目前主流的delphi下的正则表达式,应该是 PerlRegEx 。
    官方网站: http://www.regular-expressions.info/delphi.html
    直接下载: http://www.regular-expressions.info/download/TPerlRegEx.zip
    安装方法(飘易使用的delphi版本是 delphi2007):
1、先把解压的 TPerlRegEx 文件夹放在 Delphi 的根目录下的 Imports 目录中。
2、目前最新 For Win32 的版本是可以在 Delphi7,Delphi 2006,Delphi 2007,Delphi 2009 下使用。飘易用的是2 ......

delphi 使用ado 读写 vfp或者dbase4的数据库


tableDB.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ ExtractFilePath(dir) +';Extended Properties=dBase 5.0;Persist Security Info=False;';
       tableDB.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ExtractFilePath(dir)+';Extended Properties=dBASE IV;User ID=Admin;Password=;';
使用ado读取dbf的时候,出了一些问题,使用上面的连接串,在写dbf文件的时候,中文的数据在保存的时候就成了乱码,但是在表格显示的时候却是正常的,数字或者字母没有问题。
用下面的连接串在写中文数据的时候没有问题,不过需要注意有些客户电脑没有装vfpodbc驱动,在打包安装程序的时候,最好一块打包安装。
       tableDB.ConnectionString:='Provider=MSDASQL.1;Driver=Microsoft Visual Foxpro Driver;SourceDB='+ExtractFilePath(dir)+';SourceType=DBF;';
......

Delphi CRC32校验

网上Down的一个单元.自己改了下. unit utCRC32;
interface
uses
Windows,SysUtils,Classes;
const //Crc32表
Crc32Tab: Array[0..$FF] of LongInt =
($00000000, $77073096, $ee0e612c, $990951ba, $076dc419, $706af48f,
$e963a535, $9e6495a3, $0edb8832, $79dcb8a4, $e0d5e91e, $97d2d988,
$09b64c2b, $7eb17cbd, $e7b82d07, $90bf1d91, $1db71064, $6ab020f2,
$f3b97148, $84be41de, $1adad47d, $6ddde4eb, $f4d4b551, $83d385c7,
$136c9856, $646ba8c0, $fd62f97a, $8a65c9ec, $14015c4f, $63066cd9,
$fa0f3d63, $8d080df5, $3b6e20c8, $4c69105e, $d56041e4, $a2677172,
$3c03e4d1, $4b04d447, $d20d85fd, $a50ab56b, $35b5a8fa, $42b2986c,
$dbbbc9d6, $acbcf940, $32d86ce3, $45df5c75, $dcd60dcf, $abd13d59,
$26d930ac, $51de003a, $c8d75180, $bfd06116, $21b4f4b5, $56b3c423,
$cfba9599, $b8bda50f, $2802b89e, $5f058808, $c60cd9b2, $b10be924,
$2f6f7c87, $58684c11, $c1611dab, $b6662d3d, $76dc4190, $01db7106,
$98d220bc, $efd5102a, $71b18589, $06b6b51f, $9fbfe4a5, $e8b8d43 ......
总记录数:644; 总页数:108; 每页6 条; 首页 上一页 [44] [45] [46] [47] 48 [49] [50] [51] [52] [53]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号