一个使用多媒体定时器的简单例子

1)新建一个工程,保存

2)添加一个Button和一个Label

3)修改unit1.h代码如下:

// ---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
// ---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
// ---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TButton *Button1;
TLabel *Label1;
void __fastcall Button1Click(TObject *Sender);
void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
static void CALLBACK TimeProc(UINT uID,UINT uMsg,
DWORD dwUser,DWORD dw1,DWORD dw2); // 定时器回调函数
int TimerID; // 定时器ID
};
// ---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
// ---------------------------------------------------------------------------
#endif
4)unit1.cpp代码如下:
// ---------------------------------------------------------------------------
#include <vcl.h>
#include "mmsystem.h"
#pragma hdrstop
#include "Unit1.h"
// ---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
// ---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
TimerID = 0;
}
// ---------------------------------------------------------------------------
void CALLBACK TForm1::TimeProc(UINT uID,UINT uMsg, DWORD dwUser,DWORD dw1,DWORD dw2)
{
Form1->Label1->Caption = Now();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TimerID = timeSetEvent(1000, 0, (LPTIMECALLBACK)TimeProc, 0,
TIME_PERIODIC|TIME_CALLBACK_FUNCTION); // 设定多媒体定时器,1000ms
if(TimerID == 0)  {
ShowMessage("创建失败");
}
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
{
if(TimerID != 0)  {
timeKillEvent(TimerID); // 释放定时器
}
}
// ---------------------------------------------------------------------------

运行效果:点击按钮后,Label1开始显示时间

测试环境:BCB5 + WIN98

作者信息:

"Mao Yanwei(citiz)" <myw_fool@citiz.net>

时间: 2024-10-21 19:27:56

一个使用多媒体定时器的简单例子的相关文章

求一个socket的udpc/s简单例子

问题描述 看了一下supersocket觉较复杂而且我现在服务器环境只能.net3.5,觉得不太适合有点大了.在网上找了一些例子发现tcp在局网上还行,但在大网中就不行了,不知为何.看了一下多数推荐用udp更适合广域网环境.服务端:.net2.0在互联网上有固ip客户端:在一般用户pc拔号或路由器共享上网内网通讯用udp有简单验证数据完整.数据传输双向,数据内容一般为字符即可.有简单可用代码,最好有点注释的.自己也在googel与博客园在再寻找. 解决方案 解决方案二:引用楼主cqhydz的回复

求一个ejb2.0+weblogic8.1简单例子,someone help please

问题描述 最近要开发ejb2.0程序求一个简单ejb2.0+weblogic8.1+myeclipse(JDK1.4)例子例子要求有能得到JNDI的数据库连接池(我已经配置了)偶不胜感激,有发到我邮箱weijing_007@sina.com 解决方案 解决方案二:http://choelea.javaeye.com/blog/559953http://www.blogjava.net/jier/archive/2009/06/03/149613.html随便搜搜不就有了,给你一个做参考解决方案三

一个jsp连接mysql的简单例子

js|mysql <%@ page contentType="text/html;charset=GB2312"%><%@ page language="java" import="java.sql.*"%><%String mySqlDriver = "org.gjt.mm.mysql.Driver";String url = "jdbc:mysql://localhost/hq&qu

分享一个PHP数据流应用的简单例子_php实例

复制代码 代码如下: <?php $count = 5; start: if($count < 5) echo "You can try {$count} time, "; echo "Put Password: "; $handle = fopen ("php://stdin","r"); $line = fgets($handle); if(trim($line) != '123456'){ $count--;

Laravel缓存的高级优化的简单例子

laravel提供五个缓存的驱动模式: •文件系统 •数据库 •Memcached •APC •Redis •内存 (Arrays) 默认情况下, Laravel被配置为使用文件系统缓存驱动, 这是不需要配置的. 文件系统驱动把缓存项作为文件存储在storage/cache目录.如果你满意这个驱动, 没有其他的配置是必需的. 直接使用它就好: 提示: 使用文件系统缓存驱动程序之前, 要确保你的storage/cache目录是可写的. 在Laravel中使用缓存,可以使用Cache这个Facade

web.config文件自定义配置节的使用方法的一个简单例子

web web.config文件自定义配置节的使用方法的一个简单例子用来演示的程序名为MyApp,Namespace也是MyApp 1.编辑web.config文件 添加以下内容,声明一个Section <configSections>    <section name="AppConfig" type="MyApp.AppConfig, MyApp" /> </configSections>   声明了一个叫AppConfig的

SYBAES ASE 12.0 上一个横表转纵表的简单例子

SYBAES ASE 12.0 上一个横表转纵表的简单例子   千千如梦 2002年10月   /* create table ... */create table #dest_table(                         Flag char(1),                         A int null,                         B int null,                         C int null,         

一个颜色轮换的简单例子

一个颜色轮换的简单例子,使用三元运算子,使程序简练. 我们曾经在网站上看过一些表格单元格的背景颜色是隔行变化的,其实用下面一段很小的一段代码就可以实现: $color=(($coloralter++ %2)? "e0e0e0":"e8e8e8") ,即通过将变量累加和2取余,运用三元运算子来取得两个不同得颜色值. 示例如下: <html> <head> <title>test</title> <meta http

一个O/RMapping的简单例子

ORMAPPING出来已经很多年了,之前一直有关注,但一直没有应用到项目中去,众所周知,ORMAPPING 的性能是很大一个问题,虽然它节省代码量,为程序员做了很多工作.而且ORMAPPING主要应用在JAVA领 域,.NET领域用到的少之又少,最近公司要做一个内部的资产管理系统,我就打算用ORMAPPING来做,对 几种ORMAPPING的框架我进行了比较,第一,nhibernate这个我相信大家比较熟悉了,nhibernate在JAVA 领域已经应用相当广泛了,nhibernate最持久层性