在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
DelphiX 提供了高性能的计时器 TDXTimer, 使用方法和 Timer 基本一样. 我们在使用 Timer 时, 很少把 Interval 设为 50 以下(这应该是它精确度的极限); 使用 TDXTimer 可以把 Interval 置为 0, 表示尽可能地快! 本例效果图: 代码文件: unit Unit1; interface uses 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 end end |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论