博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Delphi 与 DirectX 之 DelphiX(4): 初识 TDXTimer
阅读量:7136 次
发布时间:2019-06-28

本文共 2474 字,大约阅读时间需要 8 分钟。

  hot3.png

DelphiX 提供了高性能的计时器 TDXTimer, 使用方法和 Timer 基本一样.
我们在使用 Timer 时, 很少把 Interval 设为 50 以下(这应该是它精确度的极限);
使用 TDXTimer 可以把 Interval 置为 0, 表示尽可能地快!

本例效果图:
26153321_v2U6.gif

代码文件:

unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, DXClass, DXDraws, ComCtrls;type  TForm1 = class(TForm)    DXDraw1: TDXDraw;    DXTimer1: TDXTimer;    TrackBar1: TTrackBar;    procedure FormCreate(Sender: TObject);    procedure DXTimer1Timer(Sender: TObject; LagCount: Integer);    procedure TrackBar1Change(Sender: TObject);  end;var  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);begin  DXDraw1.Align := alClient;  TrackBar1.Align := alBottom;  TrackBar1.Height := 23;  TrackBar1.ShowSelRange := False;  TrackBar1.Min := 0;  TrackBar1.Max := 500;  TrackBar1.Position := TrackBar1.Max div 2;  DXTimer1.Interval := TrackBar1.Position;  Randomize;end;procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer);var  x1,y1,x2,y2: Integer;begin  {随机位置}  x1 := Random(DXDraw1.Width);  y1 := Random(DXDraw1.Height);  x2 := Random(DXDraw1.Width);  y2 := Random(DXDraw1.Height);  DXDraw1.Surface.Fill(0);  with DXDraw1.Surface.Canvas do begin    Brush.Color := Random($FFFFFF); {随机颜色}    Ellipse(x1, y1, x2, y2);    Release;  end;  DXDraw1.Flip;end;procedure TForm1.TrackBar1Change(Sender: TObject);begin  DXTimer1.Interval := TrackBar1.Position;end;end.
窗体文件:

object Form1: TForm1  Left = 0  Top = 0  Caption = 'Form1'  ClientHeight = 206  ClientWidth = 339  Color = clBtnFace  Font.Charset = DEFAULT_CHARSET  Font.Color = clWindowText  Font.Height = -11  Font.Name = 'Tahoma'  Font.Style = []  OldCreateOrder = False  OnCreate = FormCreate  PixelsPerInch = 96  TextHeight = 13  object DXDraw1: TDXDraw    Left = 24    Top = 24    Width = 100    Height = 100    AutoInitialize = True    AutoSize = True    Color = clBlack    Display.FixedBitCount = False    Display.FixedRatio = True    Display.FixedSize = True    Options = [doAllowReboot, doWaitVBlank, doCenter, do3D, doDirectX7Mode, doHardware, doSelectDriver]    SurfaceHeight = 100    SurfaceWidth = 100    TabOrder = 0    Traces = <>  end  object TrackBar1: TTrackBar    Left = 96    Top = 144    Width = 150    Height = 28    TabOrder = 1    OnChange = TrackBar1Change  end  object DXTimer1: TDXTimer    ActiveOnly = True    Enabled = True    Interval = 1000    OnTimer = DXTimer1Timer    Left = 144    Top = 24  endend

转载于:https://my.oschina.net/hermer/blog/319738

你可能感兴趣的文章
python前端之移动端页面布局
查看>>
Ubuntu 搭建 GitLab 笔记
查看>>
运行python脚本时,报错InsecurePlatformWarning: A true SSLContext object is not available,解决方法...
查看>>
操作系统(七)进程管理——进程控制
查看>>
get提交出现中文乱码,通过Tomcat解决
查看>>
Python-爬虫-HTTP协议请求之GET请求
查看>>
Python 爬虫-抓取小说《鬼吹灯之精绝古城》
查看>>
一些好用的网站 + 软件
查看>>
Codeforces #449 div2 C题
查看>>
过渡属性
查看>>
Dymanic programming
查看>>
input 禁止 复制 粘贴 剪切 操作
查看>>
es6
查看>>
Promise对象
查看>>
mysql 安装与启动
查看>>
9、内存操作
查看>>
centos 安装单机版 redis4.0.10
查看>>
js Json数组的增删改查
查看>>
COGS 2095. 不平凡的引线
查看>>
简单实现进程间的通信
查看>>