Application.ProcessMessages; 的重要性】的更多相关文章

https://files.cnblogs.com/files/del88/登陆光标_悬赏50元.zip ---------------------------------------------------------------------------------------- 通过这句可以知道,原来每个windows组件 都有句柄,都可以直接给句柄发消息. 讲解的比较透彻 Application.ProcessMessages; 这句的目的是让其他消息 先走.…
参考:http://cqujsjcyj.iteye.com/blog/380926 我想你可能还有点模糊.举个例子容易明白:假如你的窗体上有两个按钮,一个“计算”,一个“停止”, 如果你的计算是密集运算或复杂处理,当你点了“计算”钮后,你将发现“停止”按钮不会响应你的点击了,也就是说,你无法随时使计算过程停下来.而倘若你在计算的代码中加入Application.ProcessMessages,则你的程序就有机会响应其它的事件了. 在大量的循环运算,又不想使用多线程时,为了计算机在运算时能响应用户…
  作者 关劲松           delphi 开发中有些时候需要停留片刻,等待界面输入,或异步操作完成,如果使用sleep函数的话,整个程序都会停顿,界面还会出现冻结的情况.因此需要自行编写一个delay函数,以毫秒为单位控制等待时间.         函数功能:GetTickCount返回(retrieve)从操作系统启动到现在所经过(elapsed)的毫秒数,它的返回值是DWORD.         Application.ProcessMessages; 主要作用使程序在运行时能够响…
procedure mycopyfile(sourcef,targetf:string;i:integer); var FromF,ToF:file; NumRead,NumWritten:Integer; Buf:..] of Char; n:integer; begin AssignFile(FromF,sourcef); Reset(FromF, ); { Record size = 1 } AssignFile(ToF,targetf); { Open output file } Rew…
> Should I use a AntiFreeze component on every form I have a TIdTCPClient > component?  Or is one enough to handle the whole Application? One is enough. According to the Indy help file, -------- Only one TIdAntiFreeze can be active in an application…
DELPHI下的SOCK编程      本文是写给公司新来的程序员的,算是一点培训的教材.本文不会涉及太多的编程细节,只是简单讲解在DELPHI下进行Winsock编程最好了解的知识. 题外话:我认为学习编程就如同学习外语一样,最好的方式是你先学会如何去运用它,然后才是了解它的语言特性.语法之类的东西.不过很可惜,我们以前的外语教育使用了相反的过程.软件编程也是一样,在很多人的大学阶段,你更多的是学习那些理论知识,学习“语法”,这里,我丝毫没有贬低理论知识重要性的意思.理论知识和实践是相辅相成的…
 DELPHI下的SOCK编程(转自http://www.cnblogs.com/devcjq/articles/2325600.html) 本文是写给公司新来的程序员的,算是一点培训的教材.本文不会涉及太多的编程细节,只是简单讲解在DELPHI下进行Winsock编程最好了解的知识. 题外话:我认为学习编程就如同学习外语一样,最好的方式是你先学会如何去运用它,然后才是了解它的语言特性.语法之类的东西.不过很可惜,我们以前的外语教育使用了相反的过程.软件编程也是一样,在很多人的大学阶 段,你更多…
 多线程程序设计 我们知道,win95或winNT都是“多线程”的操作系统,在DELPHI .中,我们可以充分利用这一特性,编写出“多线程”的应用程序. 对以往在DOS或16位windows下写程序的人来说,“多线程”仍然是陌生的,但如同以前我们从DOS下的单任务过渡到windows3.下的多任务,如今我们又必须过渡到“多线程”领域,毕竟计算机时代是在不断发展的.不过,幸运的是,在DELPHI2.下进行多线程程序设计并不需要我们去学习庞大的WIN32API函数,我们可以利用DELPHI下标准的多…
(整理自网络) Delphi多线程处理 1-1多线程的基本概念 WIN 98/NT/2000/XP 是个多任务操作系统,也就是:一个进程可以划分为多个线程,每个线程轮流占用CPU 运行时间和资源,或者说,把CPU 时间划成片,每个片分给不同的线程,这样,每个线程轮流的“挂起”和“唤醒”,由于时间片很小,给人的感觉是同时运行的. 多线程带来如下好处:(自己阅读) 1)避免瓶颈: 2)并行操作: 3)提高效率: 在多线程中,通过优先级管理,可以使重要的程序优先操作,提高了任务管理的灵活性. 另一方面…
工作中有个需求需要发送邮件,因为使用的delphi6,所以自然就选择了indy组件,想想这事挺简单的.实现的过程倒是简单,看着Indy的demo很快就完了,毕竟也不是很复杂的功能. 功能要求: 1.压缩日志文件并作为邮件的附件 2.邮件正文带上一些客户端信息 组件介绍 TIdSmtp:与服务器的连接及数据发送,基于smtp协议 TIdMessage:自然就是报文的信息了,包含收件人.发件人.主题.正文,以及附件. 代码展示: function TfrmMailSend.SendMail: Boo…
现在delphi都发布到xe8了,tidhttp还有缺陷,那就是超时设置在没有网络或者连不上服务器的时候是无效的,不管你设置为多少都要10-20秒.connectTimeout和readTimeout都试过了,网上找了一圈,有人提出修改源码,我没试,应该也可以. 我采用的是把idhttp.get方法放到线程里,在主线程定时检查返回状态,这样就可以控制超时时间了,伪代码如下. strResult:=''; Tthread.CreateAnonymousThread( procedure begin…
来自: daocaoren0824, 时间: -- ::, ID: 再给你一份 程序员实用函数 {▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎} {▎ ▎} {▎ 大家都是程序员 没有必要重复一些无聊的事情 我的这些函数能给大家带来方便 ▎} {▎ 如果觉得还一般 请关注 WWW.cdsunco.com/www.ccemove.com QQ:35013354 ▎} {▎ 系统公用函数及过程 ▎} {▎ ▎} {▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎…
注:有一定的参考价值,转存 // Code 1 uses  ActiveX, MSHTML_TLB, ComCtrls, ComObj; function GetBrowserForFrame(Doc: IHTMLDocument2; nFrame: Integer): IWebBrowser2;  //Thanks to Rik Barker  //returns an interface to the frame's browservar  pContainer: IOLEContainer…
相信不少码农曾看过类似“life is short, use Python”等之类略带调侃意味的小段子(譬如我),而其也并非不无道理.每门编程语言都是合理的存在,都有它们的优点,及缺陷. 码农们也大多学过用过不止一门语言,譬如我. 像我这样曾胡摸过 N 门语言,但只会勉强熟练使用其中两三门或三四门的码农(C++.C#.Delphi.Golang),却还是想浅浅地比较一下它们,算是一点皮毛心得吧. 从这个偶然看到的例子开始. uses SyncObjs, System.Threading, Sys…
转载自QDAC官网网站,文章发现问题可能随时更新,最新版本请访问:http://blog.qdac.cc/?p=3066 [注]本文由网友 幽灵 分享,由 swish 整理并重新编辑.1.将A数据库A表的部分数据导入 B数据库B表中[应用场景] 经常需要将A表的部分数据导入到B库的A表中,以前用循环插入 或是用数据库本身的导入导出,比较耗时,操作麻烦. [原始做法] 循环插入 AdoQueryM.sql.text:=’select * from A表’;AdoQueryM.sql.Open;Wi…
// s:= 'document.getElementsByName(''seccodeverify'')[0].scrollTop=100;'; // s:='scrollTo(0,document.getElementsByName(''seccodeverify'')[0].offsettop);'; // s:='window.scrollBy(0,500);';     // 向下滚动500个像素 s:='window.scrollBy(0,document.getElementsBy…
====================================conversion routines====================================Format('There are now %d records in the table %s', [10,'TableA']); -->格式化字符串function Now(): TDateTime; --> 返回当前的日期和时间, DateTime类型(其实就是double型)function Date():…
Delphi Excel 操作大全 (一) 使用动态创建的方法首先创建 Excel 对象,使用ComObj:var ExcelApp: Variant;ExcelApp := CreateOleObject( 'Excel.Application' );1) 显示当前窗口:ExcelApp.Visible := True;2) 更改 Excel 标题栏:ExcelApp.Caption := '应用程序调用 Microsoft Excel';3) 添加新工作簿:ExcelApp.WorkBook…
上篇博客中提出了一个问题:怎么结束一个定时循环执行的线程,并给出了一个解决方案,但是又出现了一个问题,详细去参考上一篇博客. 然后出去撒了个尿,突然脑子里出现了一个想法(看来工作和思考久了,出去走走,哪怕是去撒个尿,都可能尿出火花,所以工作和学习的时常根本就不等同于效率灵感不是在那里拼命工作.想就能出来的),需要结合上上篇博客:关于FreeOnTerminate的知识 上面所给出的第一种解决方案: 线程(Execute)在执行定时循环:然后先让 DestroyAThread设置 Terminat…
当有多个线程的时候,经常需要去同步这些线程以访问同一个数据或资源. 例如,假设有一个程序,其中一个线程用于把文件读到内存,而另一个线程用于统计文件的字符数.当然,在整个文件调入内存之前,统计它的计数是没有意义的.但是,由于每个操作都有自己的线程,操作系统会把两个线程当做是互不相干的任务分别执行,这样就可能在没有把整个文件装入内存时统计字数.为解决此问题,你必须使两个线程同步工作 存在一些线程同步地址的问题,Win 32 提供了许多线程同步的方式.这里将会讲到:临界区.互斥.信号量和事件 为了检验…
FastMM使用详解 一.引言      FastMM 是适用于delphi的第三方内存管理器,在国外已经是大名鼎鼎,在国内也有许多人在使用或者希望使用,就连 Borland 也在delphi2007抛弃了自己原有的饱受指责的内存管理器,改用FastMM.      但是,内存管理的复杂性以及缺乏 FastMM 中文文档导致国内许多人在使用时遇到了许多问题,一些人因此而放弃了使用,我在最近的一个项目中使用了FastMM,也因此遇到了许多问题,经过摸索和研究,终于解决了这些问题.二.为什么要用Fa…
{*******************************************************} { } { Delphi公用函数单元 } { } { 版权所有 (C) 2008 勇者工作室 } { } {*******************************************************} unit UMyPubFuncFroc; interface uses ComCtrls, Forms, Windows, Classes, SysUtils,…
用到临界区 保护写日志的函数: 递归函数 删除目录下的所有文件: 循环创建或判断FTP的目录: 可改进的地方:循环压缩深层次目录的所以文件: 实现断点续传,或断点下载: {******************************************************************************* Copyright (C), 2014-2020, aicaipiao File name: UFtpContentThd.pas Author: lipingchen…
不多说了 直接上代码........有任何问题请给我邮件.... // *************************************************************************** // // FMX.Win 平台下托盘 // // 版本: 1.0 // 作者: 堕落恶魔 // 修改日期: 2015-06-26 // QQ: 17948876 // E-mail: hs_kill_god@hotmail.com // 博客: http://www.cnb…
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, IdFTP, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, IdHTTPHeaderInfo, ExtCtrls; type TForm1 = cl…
需要的环境:Adobe Acrobat 7.0 Professional  和   Quite Imposing Plus 1.5d Acrobat plugin  (qi160.exe) 程序界面: unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms,…
ECHOServer代码(不考虑粘包的处理): unit ufrmMain; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ActnList, diocp_tcp_server, ExtCtrls, ComCtrls, utils_safeLogger, utils_BufferPool, utils_fileWriter,…
本文的内容取自网络,并重新加以整理,在此留存仅仅是方便自己学习和查阅.所有代码均亲自测试 delphi7下测试有效.图片均为自己制作. 多线程应该是编程工作者的基础技能, 但这个基础我从来没学过,所以仅仅是看上去会一些,明白了2+2的时候,其实我还不知道1+1. 开始本应该是一篇洋洋洒洒的文字, 不过我还是提倡先做起来, 在尝试中去理解.先试试这个: procedure TForm1.Button1Click(Sender: TObject); var   i: Integer; begin  …
------------------------------------------------------- ◇删掉程序自己的exe文件 procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); var F:TextFile; begin AssignFile(F,'delself.bat'); Rewrite(F);{F为TextFile类型} WriteLn(F,'del '+ExtractFileName…
zw版[转发·台湾nvp系列Delphi例程]HALCON TileChannels unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, OleCtrls, HALCONXLib_TLB, StdCtrls;type TForm1 = class(TForm) Button1: TButton; HWindowXCtrl1: THW…