zoukankan      html  css  js  c++  java
  • 创建自己的窗口过程,创建自己的定时器

    a.创建自己的窗口过程AllocateHWnd,销毁DeallocateHWnd

    b.创建自己的定时器,在窗口过程响应WM_TIMER消息

    代码
    unit Unit1;

    interface

    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls;

    type
    TForm1
    = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    private
    { Private declarations }
    WindowHandle: HWnd;
    public
    { Public declarations }
    procedure WndProc(var Msg:TMessage);
    procedure UpdateTimer;
    end;

    var
    Form1: TForm1;
    bSetTimer: Boolean
    = True;

    implementation

    {$R *.dfm}

    procedure TForm1.WndProc(var Msg: TMessage);
    begin
    with Msg do
    if Msg = WM_TIMER then
    try
    Caption :
    = FormatDateTime('HH:NN:SS',now);
    except
    Application.HandleException(Self);
    end
    else
    Result :
    = DefWindowProc(WindowHandle, Msg, wParam, lParam);
    end;

    procedure TForm1.UpdateTimer;
    begin
    KillTimer(WindowHandle,
    1);
    if bSetTimer then
    if SetTimer(WindowHandle, 1, 1, nil) = 0 then
    raise EOutOfResources.Create('Create Timer Error!');
    end;

    procedure TForm1.FormCreate(Sender: TObject);
    begin
    WindowHandle :
    = AllocateHWnd(WndProc);
    if bSetTimer then UpdateTimer;
    end;

    procedure TForm1.FormDestroy(Sender: TObject);
    begin
    bSetTimer :
    = False;
    UpdateTimer;
    DeallocateHWnd(WindowHandle);
    end;

    end.

  • 相关阅读:
    SPOJ LCS2
    SPOJ NSUBSTR
    1977: [BeiJing2010组队]次小生成树 Tree
    2002: [Hnoi2010]Bounce 弹飞绵羊
    P3690 【模板】Link Cut Tree (动态树)
    P2093 [国家集训队]JZPFAR
    2648: SJY摆棋子
    HDU 2966 In case of failure
    bzoj 一些题目汇总
    BZOJ3653谈笑风生——可持久化线段树+dfs序
  • 原文地址:https://www.cnblogs.com/Jekhn/p/1913449.html
Copyright © 2011-2022 走看看