大家好,又见面了,我是你们的朋友全栈君。...下一个属性StyleName [ ] 好像是多余的,我多次都把StyleName [StyleBook1], 但是没有效果。在其他控件下设置StyleLookup就可以了,单击选择。...styleName就显得多余了,当然你能记住每个控件的style,那么就不用去look up了。
Form := D.Forms.item( 'form1 ',0) as IHTMLFormElement; //form1为表单名 //title为表单中的文本框...',edit1.text,0); (form.item( 'add ',0) as IHTMLElement).click;//add为button名称 end; 在delphi...的WebBrowser中获取和设置Input表单值 var i:Integer; myole:oleVariant; begin myole := wb1.Document;.../body>'); -------------------------------------------------------------------------------- //读取网页脚本中的变量...,FrameIndex为Frame的序号 var o : Olevariant; begin //找到登录username的输入框 o := WebBrowser.oleobject.document.documentelement.document.frames.item
Delphi编程SQL语句中引号(‘)、quotedstr()、(”)、format()在SQL语句中的用法 (2011-06-23 12:14:13) 标签: delphi编程 sql语句引号...quotedstr 总结一下SQL语句中引号(‘)、quotedstr()、(”)、format()在SQL语句中的用法以 及SQL语句中日期格式的表示(#)、(”) 在Delphi中进行字符变量连接相加时单引号用...AFieldName: string=’字符型编号’; ATableName: string=’YourTable’; ADate:Tdatetime=now; Adoquery1:tadoquery; 1,Delphi...and 整型编号=’+Inttostr(AnInt); 传到数据库服务器为: select 字符型编号 from YourTable where 字符型编号=’abc’ and 整型编号=123 2,Delphi...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
为了提高应用程序的性能,可以用inline声明一个函数过过程,对于声明为inline的过程,编译器在编译时,会取代正常的过程调用方式,取而代之是直接把这个函数的编译代码拿过来生成到调用该过程的地方,有多处调用一个函数...,都直接在调用处插入函数的编译代码,这样的弊端,会生成较大的EXE文件。...声明的方法: procedure MyFunc(x:integer):string;inline 有多种情况的函数或过程是不支持inline的: 后绑定的方法,如virtual,dynamic...代码的,如在上面的例子中,如果A单元也采用了D单元,从单元D的代码可能会被内联,因为它不参与循环依赖。...on 时,对于32byte的过程自动进行inline.
大家好,又见面了,我是你们的朋友全栈君。...Delphi xe5 控件TIdhttp的用法post,get解决中文乱码问题 参考文章: (1)Delphi xe5 控件TIdhttp的用法post,get解决中文乱码问题 (2)https://www.cnblogs.com
其实就是代表分了几种情况,都可以表示,也相当于c里面的union _SYSTEM_INFO = record case Integer of ...
最近太忙,所以没有机会来写IOCP的后续文章。今天好不容易有了时间来写IOCP的粘包处理问题。 TCP数据粘包的产生原因在于TCP是一种流协议。在以太网中一个TCP的数据包长度是1500位。...其中20位的IP包头,20位的TCP包头,其余的1460都是我们可以发送的数据。在数据发送的时候,我们发送的数据长度有可能比1460短,这样在TCP来说它还是以一个数据包来发送。...这样以来,在我们接受到一个数据包以后,就会发现在这个数据包中含有其它的数据包,从而很难处理。 处理粘包现象有多种方法。我的方法是在每发送一个数据的前面加入这次发送的数据长度(4位)。...以char的方式加入。这样以来我们的数据包结构就变成了: 数据包长度(4位)+实际数据。 在接收到数据包以后,我们首先得到数据包的长度,然后根据这个数据包长度来得到实际的数据。...我写的IOCP的代码已经在我编写的网络游戏中使用,运行稳定。 下次我会讲使用IOCP发送数据的方法。 同时祝大家新年快乐!
在Delphi中,通常可以用以下三种方法来实现程序的延时,即TTtimer控件,Sleep函数,GetTickCount函数。但是其精度是各不相同的。...一、三种方法的简单介绍 1)TTtimer控件 TTtimer控件的实质是调用Windows API定时函数SetTimer和KillTimer来实现的,并简化了对WM_TIMER 消息的处理过程。...通过设置OnTimer事 件和Interval属性,我们可以很方便的产生一些简单的定时事件。 2)Sleep函数 Sleep函数用来使程序的执行延时给定的时间值。...Sleep的调用形式为Sleep(milliseconds),暂停当前的进程milliseconds毫秒。Sleep的实现 方法其实也是调用Windows API的Sleep函数。...例如: sleep(1000); //延迟1000毫秒 Sleep会引起程序停滞,如果你延迟的时间较长的话,你的程序将不能够响应延时期间的发生的其他消息,所以程序看起来好像暂时死机。
大家好,又见面了,我是你们的朋友全栈君。 1.直接idhttp:Tidhttp声明一个var变量是不能使用的。...TStringStream.Create(ansitoUTF8(gv_mz_cf_xml)); 如果用Tstringlist,接受不到参数,改成TStringStream时,可以接受到数据,但是编码后的...b.解决编码后的参数 IdHTTP1.Request.ContentType := ‘text/xml;application/x-www-form-urlencoded; Charset=UTF-
{ Delphi遍历进程中所有Class的TypeInfo,即便是在implementation中的class或者其他 class的private的子class....所以我们要做的是遍历可执内存的内存片,然后找出TypeInfo的特征....那么认为这是个合法的class的TypeInfo 为了不产生class的类型信息本单元没用使用任何和class有关的东西,以免多产生class的类型信息 } unit UnitClassInfoEx...ENDIF} type PTypeInfos = array of PTypeInfo; TModules = array of HModule; {$IFNDEF CPUX64} // Delphi...function IsValidityString(p: PAnsiChar; Length: Byte): Boolean; var i: Integer; begin { 我假定Delphi
前言 我们知道,屏幕分辨率的设置影响着表单布局,假设你的机器上屏幕分辨率是800*600,而最终 要分发应用的机器分辨率为640*480,或1024*768,这样你原先设计的表单在新机器上势必会 走样。...实现方法 一、根据新的分辨率自动重画表单及控件 先在表单单元的Interface部分定义两个常量,表示设计时的屏幕的宽度和高度(以像素为 单位)。...在表单的Create事件中先判断当前分辨率是否与设计分辨率相同,如果不同,调用表 单的SCALE过程重新能调整表单中控件的宽度和高度。...,也自动调整控件字体的大小,以适应新的分辨率, 但美中不足的是它并不改变控件的顶点坐标位置,也就是说,该过程不改变控件之间的相对 位置关系。...它需要用到WINDOWSAPI函数EnumDisplaySettings和ChangeDisplaySettings,前者取当前显示模式信息,后者则更改显示设置,具体参数的含义请参见DELPHI帮助。
Delphi XE5中的新增内容 Delphi XE5是所有Delphi开发人员的必须备升级,并且是来自Embarcadero的获奖的、多设备应用开发解决方案的最新版本。...Delphi XE5中的新特性 针对设备和仿真器的 Delphi Android ARM编译器 FM 平台用于创建针对Gingerbread (2.3.3 – 2.3.7)、Ice Cream Sandwich...这里是添加在其他最近发布中的内容: Delphi XE4 Develop iOS应用 with Delphi iOS ARM编译器、工具链、全新的可视化开发环境和针对 iOS的控件 IBLite数据库可用于...可视化的 LiveBindings 增强的FireMonkey 样式、音频/视频和 3D Delphi XE2 针对Windows 的64位 Delphi编译器 FireMonkey应用平台 – 利用一个代码库创建多平台...了解更多 > 视频:Delphi XE5中的新增内容 浏览可以开发 Android应用的 Delphi XE5的一些新特性。
Delphi在TApplication.Idle方法中执行(最终调用了CheckSynchronize) ------------------------------------------------...----------------------------------------------------- Delphi中多线程用Synchronize实现VCL数据同步显示,Delphi中多线程用Synchronize...Synchronize的过程,此过程需要一个无参数的procedure,故在此procedure中无法传递参数值,但可以通过类的成员来实现。...定义一个无参数的procedure通过它来访问类的成员变量szName和nIndex。在类的重载Execute中调用Synchronize。...主程的设计与《Delphi中多线程用消息实现VCL数据同步显示》基本一致,但为了与其显示相同结果,在生成子线程中语句顺序作了一下调整。以下代码仅显示与上一篇不同的一个过程,其它代码不再赘述。
有时候我们需要对其它应用程序发送和接收的网络数据进行拦截,比如要对IE发送的**头进行分析,得到请求的地址等.这次我们可以用一些例如WPE, Sniffer之类的工具来达到目的.但是工具功能有限,要想实现更强大的功能...拦截网络数据封包的方法有三种,一是将网卡设为混杂模式,这次就可以监视到局域网上所有的数据包,二是HOOK目标进程的发送和接收的API函数,第三种方法是自己实现一个代理的DLL.在这里我们使用HOOK API...下面是一个尽量简化了的API HOOK的模版,原理是利用消息钩子将DLL中的代码注入到目标进程中,再用GetProcAddress得到API函数入口地址,将函数入口址改为自己定义的函数入口,这样就得到了...HOOK.DLL的代码: Delphi代码 ?...并传入目标进程的主窗口句柄就可: Delphi代码 ?
begin memo1.lines.add(Arr.items[i].value); end; 注意事项 Json解析无法判断数据内是否存在指定对象名,所以在吃不准是否存在指定对象的时候还是使用...get遍历的方式读取数据比较稳妥。
所以压缩是不可避免了,delphi中的默认压缩算法整了半天不太好使,就看了看7z,在windows下有dll那么就用它吧。...下载7z.dll,还有一个delphi的开发sdk文件,sevenzip.pas。有这两个就可以了。...这里有点要注意的是使用:m7LZMA这个算法压缩比特别高,好像针对文本类型的会很好。我试了400M的文本压缩后5M左右吧。这个压缩率还是挺可观的。...,生成7z的包用winrar反正是可以打开和解压的。...解压 7z也提供了解压的算法,但是不同的压缩算法生成的压缩包格式是不同的,需要指定解压类型来解压。但我看7z里支持的算法类型还是很全的,于是就整了个If列表。
链式操作的用法 所以,从表面上看,Promise只是能够简化层层回调的写法,而实质上,Promise的精髓是“状态”,用维护状态、传递状态的方式来使得回调函数能够及时调用,它比传递callback函数要简单...reject的用法 到这里,你应该对“Promise是什么玩意”有了最基本的了解。那么我们接着来看看ES6的Promise还有哪些功能。我们光用了resolve,还没用reject呢,它是做什么的呢?...catch的用法 我们知道Promise对象除了then方法,还有一个catch方法,它是做什么用的呢?...all的用法 Promise的all方法提供了并行执行异步操作的能力,并且在所有异步操作执行完后才执行回调。...race的用法 all方法的效果实际上是「谁跑的慢,以谁为准执行回调」,那么相对的就有另一个方法「谁跑的快,以谁为准执行回调」,这就是race方法,这个词本来就是赛跑的意思。
Delphi写的程序,如果在单元的finalization里出现了一些异常操作会导致退出时抛出Runtime Error ,规范的处理办法当然是解决这些异常,但是有些特殊的情况下,比如用了很多的第三方控件...做法其实很简单,就是在 END.之前手工调用Halt释放,并且将Halt抛出的错误屏蔽掉,这样做和正常的DELPHI释放过程没有任何区别,因为End.编译后其实就是一句话 Call Halt0,只是VCL...然后就是如何屏蔽错误的问题了,第一个最容易想到的做法就是直接 Try halt except end; 但是这样是不行的,因为try…except end捕获的错误都会放到System单元的_HandleOnException...中处理,函数检查错误类型是否是DelphiException,如果不是就不处理,这个时候就会被DELPHI的顶层异常机制捕获,并抛出Runtime error,halt里抛出来的错误恰恰就是非DelphiException...,不会对DELPHI正常释放过程产生影响,所有的释放操作都是和VCL一致的,只是不会把错误显示出来。
_Stream ADODB_TLB akTop, akLeft, akRight, akBottom Controls Application (the var...
大家好,又见面了,我是你们的朋友全栈君。...Mutex中提供了WiteOne,ReleaseMutex 两个实例方法~ WiteOne的作用是”阻塞当前线程,提供对该线程的原子操作” 也就是说当一个线程遇到WiteOne的时候,如果在WiteOne...里面没有线程在操作,则此线程进去操作 而里面有线程的时候,所有到此的线程均需要排队等候里面的线程执行完毕~ 而控制这样操作的结束标记就是使用ReleaseMutex 方法!...,此变量就会加锁,而其他线程是无法访问的,只能挂起等候此变量解锁 我感觉实际上使用的也就是Mutex来实现的 好了开始说说具体的实现吧 public class MutexTest { private...//等待获得对a的写的权利 a++ //保护部分 ReleaseMutex......
领取专属 10元无门槛券
手把手带您无忧上云