source: trunk/Apps/Clock.pas

Last change on this file was 60, checked in by chronos, 6 weeks ago
  • Modified: Remove U prefix from unit names.
File size: 2.1 KB
Line 
1unit Clock;
2
3interface
4
5uses
6 SysUtils, Kernel.App, DateUtils, Kernel.Core, Kernel.Scheduler, Kernel.IPC,
7 Kernel.Graphics;
8
9type
10
11 { TAppClock }
12
13 TAppClock = class(TApp)
14 procedure Run(Task: TTask); override;
15 constructor Create; override;
16 end;
17
18 { TAppClock2 }
19
20 TAppClock2 = class(TApp)
21 procedure Run(Task: TTask); override;
22 constructor Create; override;
23 end;
24
25
26implementation
27
28{ TAppClock }
29
30procedure TAppClock.Run(Task: TTask);
31var
32 Message: TIPCMessage;
33 WindowId: Integer;
34 CanvasId: Integer;
35 Angle: Double;
36begin
37 Message := TIPCMessage.Create;
38 WindowId := API.WindowCreate;
39 CanvasId := API.GetWindowCanvas(WindowId);
40 API.WindowSetAttr(WindowId, TRectangle.Create(100, 150, 300, 200), True);
41 while not Task.Terminated do begin
42 API.WriteText('test');
43 API.DrawRect(CanvasId, TRectangle.Create(60, 60, 180, 180), $b0ffff);
44 API.DrawText(CanvasId, TPoint.Create(10, 10), 'Text', 0);
45 Angle := Frac(Now / (10 * OneSecond)) * 2 * Pi;
46 API.DrawLine(CanvasId, TPoint.Create(120, 120), TPoint.Create(Trunc(120 + Cos(Angle) * 60), Trunc(120 + Sin(Angle) * 60)), 0);
47 API.Sleep(OneMillisecond * 10);
48 //API.ReadMessage(Message);
49 end;
50 Message.Free;
51end;
52
53constructor TAppClock.Create;
54begin
55 inherited;
56 Name := 'Clock';
57end;
58
59{ TAppClock2 }
60
61procedure TAppClock2.Run(Task: TTask);
62var
63 Message: TIPCMessage;
64 WindowId: Integer;
65 CanvasId: Integer;
66 Angle: Double;
67begin
68 Message := TIPCMessage.Create;
69 WindowId := API.WindowCreate;
70 CanvasId := API.GetWindowCanvas(WindowId);
71 API.WindowSetAttr(WindowId, TRectangle.Create(120, 100, 400, 200), True);
72 while not Task.Terminated do begin
73 API.WriteText('test2');
74 API.DrawRect(CanvasId, TRectangle.Create(460, 160, 380, 280), $ffff80);
75 API.DrawText(CanvasId, TPoint.Create(210, 110), 'Text', 0);
76 Angle := Frac(Now / (10 * OneSecond)) * 2 * Pi;
77 API.DrawLine(CanvasId, TPoint.Create(320, 220), TPoint.Create(Trunc(320 + Cos(Angle) * 120), Trunc(220 + Sin(Angle) * 120)), 0);
78 API.Sleep(OneMillisecond * 300);
79 //API.ReadMessage(Message);
80 end;
81 Message.Free;
82end;
83
84constructor TAppClock2.Create;
85begin
86 inherited;
87 Name := 'Clock2';
88end;
89
90end.
91
Note: See TracBrowser for help on using the repository browser.