AllocateHWnd SetTimer API
unit Unit2; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls; type
TForm2 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
FWorkHandle: THandle;
procedure WorkWindowProc(var message: TMessage);
public
{ Public declarations }
end; var
Form2: TForm2; const
WM_PROGRESS = WM_USER + $A;
EventTimer1 = 1020;
EventTimer2 = 1021; implementation {$R *.dfm} procedure TForm2.Button1Click(Sender: TObject);
begin
PostMessage(FWorkHandle, WM_PROGRESS, 0, 0);
end; procedure TForm2.FormCreate(Sender: TObject);
begin
FWorkHandle := AllocateHWnd(WorkWindowProc);
SetTimer(FWorkHandle, EventTimer1, 1000, nil);
SetTimer(FWorkHandle, EventTimer2, 100, nil);
end; procedure TForm2.FormDestroy(Sender: TObject);
begin
KillTimer(FWorkHandle, EventTimer1);
KillTimer(FWorkHandle, EventTimer2);
DeallocateHWnd(FWorkHandle);
end; procedure TForm2.WorkWindowProc(var message: TMessage);
begin
case message.Msg of
WM_PROGRESS:
Caption := 'hello WM_BURNPROGRESS';
WM_COPYDATA:
Caption := 'hello WM_COPYDATA';
WM_TIMER:
begin
case message.WParam of
EventTimer1:
Caption := 'hello WM_TIMER Event1 ' + IntToStr(GetTickCount);
EventTimer2:
Caption := 'hello WM_TIMER Event2 ' + IntToStr(GetTickCount);
end;
end;
else
//Dispatch(message);
end;
end; end.
AllocateHWnd SetTimer API的更多相关文章
- SetTimer API函数
位于user32.dll中,可以每隔一段时间执行一段时间执行一件事的时候,可以使用它. 使用定时器,通常告诉Windows一个时间间隔,然后Windows以此时间间隔周期性触发程序. 发送WM_TIM ...
- DELPHI下API简述(1800个API)
DELPHI下API简述 http://zero.cnbct.org/show.asp?id=144 auxGetDevCaps API 获取附属设备容量 auxGetNumDevs API 返回附属 ...
- Callback函数详解(我感觉,回掉函数的本质是函数指针,在业务做循环处理的时候,调用一下通知外部)
2010年的最后一天了,转载一篇自己认为还不错的文章与大家分享.希望对大家有所帮助. 一,回调函数 我们经常在C++设计时通过使用回调函数可以使有些应用(如定时器事件回调处理.用回调函数记录某操作进度 ...
- 第二篇 界面开发 (Android学习笔记)
第二篇 界面开发 第5章 探索界面UI元素 ●The Android View Class ●△Widget设计步骤 需要修改三个XML,以及一个class: 1)第一个xml是布局XML文件 ...
- 回调函数(callback) python / c++ 演示
什么是回调函数? 我们绕点远路来回答这个问题. 编程分为两类:系统编程(system programming)和应用编程(application programming).所谓系统编程,简单来说,就是 ...
- Microsoft Win32 to Microsoft .NET Framework API Map
Microsoft Win32 to Microsoft .NET Framework API Map .NET Development (General) Technical Articles ...
- 英文不好也能快速"记忆" API
英文不好不要紧,把API函数导入打字练习类软件,即是练习打字速度,提高编程效率:也能短时间记忆API. 坚持每天打一遍,约2小时,连续打两周,会对API有很好的记忆,此方法是结合英文学习方法!以下是W ...
- SetTimer函数的用法
什么时候我们需要用到SetTimer函数呢?当你需要每个一段时间执行一件事的的时候就需要使用SetTimer函数 了.使用定时器的方法比较简单,通常告诉WINDOWS一个时间间隔,然后WINDOWS以 ...
- Thread message loop for a thread with a hidden window? Make AllocateHwnd safe
Thread message loop for a thread with a hidden window? I have a Delphi 6 application that has a thre ...
随机推荐
- 第十二周翻译-《Pro SQL Server Internals, 2nd edition》
<Pro SQL Server Internals, 2nd edition> 作者:Dmitri Korotkevitch 翻译:赖慧芳 译文: 专业SQL服务器内部 了解在引擎盖下发生 ...
- vs-code 基础设置
汉化设置: 最新版的vscode 汉化需要两步 1 ctrl+shift+p 在顶部输入框中输入 language 后选择 configure Display Language 后进入 第二张 ...
- PTA-栈
1-1 若一个栈的输入序列为1,2,3,…,N,输出序列的第一个元素是i,则第j个输出元素是j−i−1. (2分) T F 作者: DS课程组 单位: 浙江大学 1-2 若一个栈的 ...
- jquery tmpl生成导航
引入<script src="jquery.tmpl.min.js"></script> html<ul class="nav" ...
- waitGroup的使用
package main import ( "fmt" "sync" "time" ) func main() { var wg sync. ...
- 转:vim模式下报错E37: No write since last change (add ! to override)
故障现象: 使用vim修改文件报错,系统提示如下: E37: No write since last change (add ! to override) 故障原因: 文件为只读文件,无法修改. 解决 ...
- Consider defining a bean of type 'com.lvjing.dao.DeviceStatusMapper' in your configuration.
"C:\Program Files\Java\jdk1.8.0_181\bin\java.exe" "-javaagent:C:\Program Files\JetBra ...
- Linux 环境下安装Redis的步骤
#进入usr/local目录cd /usr/local#下载1.wget http://download.redis.io/releases/redis-4.0.10.tar.gz#解压2.tar x ...
- outlook2010设置失败后重新设置
1.WIN+R ,然后在弹出框中输入outlook /importprf .\.prf 2.重新设置.
- Charles Map Local 中文显示乱码问题
最近在迁移客户端的业务,用React Native实现,在用本地数据测试Android的时候,遇到到中文乱码的问题.是因为编码问题. 一.首先看看文件编码是否是UTF-8,我的电脑是安装了Sublim ...