📄 uclockfrm.pas
字号:
{ 显示时钟窗体单元 }
unit UClockFrm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, ExtCtrls, jpeg;
type
TClockForm = class(TForm)
Image0: TImage;
Image1: TImage;
Image2: TImage;
Image3: TImage;
Image4: TImage;
Image5: TImage;
Image6: TImage;
Image7: TImage;
Image8: TImage;
Image9: TImage;
TimerClock: TTimer;
ImageBack: TImage;
ImageHour1: TImage;
ImageHour2: TImage;
Image10: TImage;
ImageMin1: TImage;
ImageMin2: TImage;
Image11: TImage;
ImageSec1: TImage;
ImageSec2: TImage;
procedure TimerClockTimer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
procedure OnNcHitTest(var Message: TMessage);
procedure WndProc(var Message: TMessage); override;
end;
var
ClockForm: TClockForm;
Img: array[0..9] of TImage;
implementation
uses UMain;
{$R *.DFM}
procedure TClockForm.WndProc(var Message: TMessage);
begin
if Message.Msg = WM_NCHITTEST then
OnNcHitTest(Message)
else
Dispatch(Message);
end;
procedure TClockForm.OnNcHitTest(var Message: TMessage);
var
pt: TPoint;
rc: TRect;
begin
pt.x := LOWORD(Message.LParam);
pt.y := HIWORD(Message.LParam);
pt := ScreenToClient(pt);
SetRect(rc,0,0,ClientWidth,ClientHeight);
if (PtInRect(rc,pt)) then
Message.Result := HTCAPTION
else
DefaultHandler(Message);
end;
procedure TClockForm.TimerClockTimer(Sender: TObject);
var
s: String;
i: Integer;
begin
s := TimeToStr(Time);
//10:10:10
i := 1;
while (s[i]<>':') do i := i+1;
if (i=2) then//7个字符
begin
ImageHour1.Picture:=Img[0].Picture;
ImageHour2.Picture:=Img[ord(s[1])-ord('0')].Picture;
ImageMin1.Picture:=Img[ord(s[3])-ord('0')].Picture;
ImageMin2.Picture:=Img[ord(s[4])-ord('0')].Picture;
ImageSec1.Picture:=Img[ord(s[6])-ord('0')].Picture;
ImageSec2.Picture:=Img[ord(s[7])-ord('0')].Picture;
end
else if (i=3) then//8个字符
begin
ImageHour1.Picture:=Img[ord(s[1])-ord('0')].Picture;
ImageHour2.Picture:=Img[ord(s[2])-ord('0')].Picture;
ImageMin1.Picture:=Img[ord(s[4])-ord('0')].Picture;
ImageMin2.Picture:=Img[ord(s[5])-ord('0')].Picture;
ImageSec1.Picture:=Img[ord(s[7])-ord('0')].Picture;
ImageSec2.Picture:=Img[ord(s[8])-ord('0')].Picture;
end;
end;
procedure TClockForm.FormCreate(Sender: TObject);
var
i: Integer;
begin
Img[0]:=Image0;
Img[1]:=Image1;
Img[2]:=Image2;
Img[3]:=Image3;
Img[4]:=Image4;
Img[5]:=Image5;
Img[6]:=Image6;
Img[7]:=Image7;
Img[8]:=Image8;
Img[9]:=Image9;
//for(int i=0;i<10;i++)Img[i].Hide();
for i := 0 to 9 do Img[i].Hide;
SetBounds(5,530,ImageBack.Width,ImageBack.Height);
end;
procedure TClockForm.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
frmGame.FormKeyDown(Sender, Key, Shift);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -