Работа с файлами и мультимедиа


Download 361.5 Kb.
bet8/9
Sana20.10.2023
Hajmi361.5 Kb.
#1711567
TuriЛекции
1   2   3   4   5   6   7   8   9
Bog'liq
Работа с файлами и мультимедиа

Листинг 15.2. Часы
unit main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; type TMainFrm = class(TForm) ClockTmr: TTimer; DigitalLbl: TLabel; AnalogPB: TPaintBox; AlphaTmr: TTimer; procedure ClockTmrTimer(Sender: TObject); procedure FormCreate(Sender: TObject); public procedure DrawClock(t: TTime); end; var MainFrm: TMainFrm; implementation {$R *.dfm} procedure TMainFrm.ClockTmrTimer(Sender: TObject); begin DigitalLbl.Caption:=TimeToStr(now); Application.Title:=DigitalLbl.Caption; DrawClock(now); end; procedure TMainFrm.DrawClock(t: TTime); var x,y,i: integer; h,m,s,ms: word; step,c: double; begin AnalogPB.Canvas.Brush.Color:=clWhite; AnalogPB.Canvas.Ellipse(3,3,108,108); step:=2*pi/60; AnalogPB.Canvas.Pen.Color:=clBlack; for i:=0 to 11 do begin AnalogPB.Canvas.MoveTo(55,55); x:=55+Round(52*sin(i*step*5)); y:=55-Round(52*cos(i*step*5)); AnalogPB.Canvas.LineTo(x,y); end; AnalogPB.Canvas.Pen.Color:=clGray; AnalogPB.Canvas.Ellipse(7,7,104,104); DecodeTime(t,h,m,s,ms); AnalogPB.Canvas.MoveTo(55,55); x:=55+Round(49*sin(s*step)); y:=55-Round(49*cos(s*step)); AnalogPB.Canvas.Pen.Color:=clGray; AnalogPB.Canvas.LineTo(x,y); AnalogPB.Canvas.MoveTo(55,55); c:=(m*60+s)/60; x:=55+Round(43*sin(c*step)); y:=55-Round(43*cos(c*step)); AnalogPB.Canvas.Pen.Color:=clBlack; AnalogPB.Canvas.LineTo(x,y); AnalogPB.Canvas.MoveTo(55,55); if h>12 then h:=h-12; c:=(h*60+m)/60*5; x:=55+Round(33*sin(c*step)); y:=55-Round(33*cos(c*step)); AnalogPB.Canvas.Pen.Width:=2; AnalogPB.Canvas.LineTo(x,y); AnalogPB.Canvas.Pen.Width:=1; end; procedure TMainFrm.FormCreate(Sender: TObject); begin MainFrm.Top:=Screen.DesktopHeight-MainFrm.Height; MainFrm.Left:=Screen.DesktopWidth-MainFrm.Width; end;
Если же вам не понравится, что они таким образом закроют "стандартные" часы Windows, да еще и вместе с индикатором клавиатуры, то можно будет сделать их полупрозрачными, причем эффект появления прозрачности может быть постепенным, для чего достаточно будет разместить на форме еще один таймер и изменять по нему свойство AlphaBlendValue. Именно такой вариант программы вы найдете в Demo\Part3\Time.

Download 361.5 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling