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的更多相关文章

  1. SetTimer API函数

    位于user32.dll中,可以每隔一段时间执行一段时间执行一件事的时候,可以使用它. 使用定时器,通常告诉Windows一个时间间隔,然后Windows以此时间间隔周期性触发程序. 发送WM_TIM ...

  2. DELPHI下API简述(1800个API)

    DELPHI下API简述 http://zero.cnbct.org/show.asp?id=144 auxGetDevCaps API 获取附属设备容量 auxGetNumDevs API 返回附属 ...

  3. Callback函数详解(我感觉,回掉函数的本质是函数指针,在业务做循环处理的时候,调用一下通知外部)

    2010年的最后一天了,转载一篇自己认为还不错的文章与大家分享.希望对大家有所帮助. 一,回调函数 我们经常在C++设计时通过使用回调函数可以使有些应用(如定时器事件回调处理.用回调函数记录某操作进度 ...

  4. 第二篇 界面开发 (Android学习笔记)

    第二篇 界面开发 第5章 探索界面UI元素 ●The Android View Class     ●△Widget设计步骤 需要修改三个XML,以及一个class: 1)第一个xml是布局XML文件 ...

  5. 回调函数(callback) python / c++ 演示

    什么是回调函数? 我们绕点远路来回答这个问题. 编程分为两类:系统编程(system programming)和应用编程(application programming).所谓系统编程,简单来说,就是 ...

  6. Microsoft Win32 to Microsoft .NET Framework API Map

    Microsoft Win32 to Microsoft .NET Framework API Map .NET Development (General) Technical Articles   ...

  7. 英文不好也能快速"记忆" API

    英文不好不要紧,把API函数导入打字练习类软件,即是练习打字速度,提高编程效率:也能短时间记忆API. 坚持每天打一遍,约2小时,连续打两周,会对API有很好的记忆,此方法是结合英文学习方法!以下是W ...

  8. SetTimer函数的用法

    什么时候我们需要用到SetTimer函数呢?当你需要每个一段时间执行一件事的的时候就需要使用SetTimer函数 了.使用定时器的方法比较简单,通常告诉WINDOWS一个时间间隔,然后WINDOWS以 ...

  9. 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 ...

随机推荐

  1. 第十五周翻译-《Pro SQL Server Internals, 2nd edition》

    <Pro SQL Server Internals, 2nd edition> 作者:Dmitri Korotkevitch 翻译:赖慧芳 译文: 55-58页 第三章 统计 SQL Se ...

  2. Promise学习使用

    Promise是承诺的意思,“承诺可以获取异步操作的消息”,是一种异步执行的方案,Promise有各种开源实现,在ES6中被统一规范,由浏览器直接支持. Promise 对象有三种状态:pending ...

  3. API响应

    保证API响应的正确性,就是你需要做的大部分工作.postman的response viewer部分会协助你完成该工作且使其变得简单. 一个API的响应包含body,headers,响应状态码.pos ...

  4. Beta冲刺 5

    前言 队名:拖鞋旅游队 组长博客:https://www.cnblogs.com/Sulumer/p/10129059.html 作业博客:https://edu.cnblogs.com/campus ...

  5. Traceur

    直接插入网页 <!-- 加载Traceur编译器 --> <script src="http://google.github.io/traceur-compiler/bin ...

  6. SPRINGMVC中的中文乱码处理

    说到乱码处理,对于很多人来说是非常经常遇到的,现在来总结一下web工程中中文乱码处理的几个步骤,乱码处理大致可以分为一下几步,分别从页面到数据库: 页面传值到后台: 工程编码(最后一开始建立工程就设置 ...

  7. 【转】Android-Input input&按键布局文件

    https://source.android.com/devices/input 输入 Android 输入子系统名义上是由遍历系统多个层的事件管道组成. 输入管道 在最低层,物理输入设备会生成描述状 ...

  8. 如何使用HTML5的WebSocket实现网页与服务器的双工通信(二)

    本系列服务端双工通信包括两种实现方式:一.使用Socket构建:二.使用WCF构建.本文为使用WCF构建服务端的双工通信,客户端同样使用Html5的WebSocket技术进行调用. 一.创建WCF服务 ...

  9. session的部分理解

    定义 Session:在计算机中,尤其是在网络应用中,称为“会话控制”.Session 对象存储特定用户会话所需的属性及配置信息.这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session ...

  10. python+flask+session写供前端使用的后台接口,实现登录保存session时报错。

    RuntimeError: The session is unavailable because no secret key was set.  Set the secret_key on the a ...