1 | unit Clock;
|
---|
2 |
|
---|
3 | interface
|
---|
4 |
|
---|
5 | uses
|
---|
6 | SysUtils, Kernel.App, DateUtils, Kernel.Core, Kernel.Scheduler, Kernel.IPC,
|
---|
7 | Kernel.Graphics;
|
---|
8 |
|
---|
9 | type
|
---|
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 |
|
---|
26 | implementation
|
---|
27 |
|
---|
28 | { TAppClock }
|
---|
29 |
|
---|
30 | procedure TAppClock.Run(Task: TTask);
|
---|
31 | var
|
---|
32 | Message: TIPCMessage;
|
---|
33 | WindowId: Integer;
|
---|
34 | CanvasId: Integer;
|
---|
35 | Angle: Double;
|
---|
36 | begin
|
---|
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;
|
---|
51 | end;
|
---|
52 |
|
---|
53 | constructor TAppClock.Create;
|
---|
54 | begin
|
---|
55 | inherited;
|
---|
56 | Name := 'Clock';
|
---|
57 | end;
|
---|
58 |
|
---|
59 | { TAppClock2 }
|
---|
60 |
|
---|
61 | procedure TAppClock2.Run(Task: TTask);
|
---|
62 | var
|
---|
63 | Message: TIPCMessage;
|
---|
64 | WindowId: Integer;
|
---|
65 | CanvasId: Integer;
|
---|
66 | Angle: Double;
|
---|
67 | begin
|
---|
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;
|
---|
82 | end;
|
---|
83 |
|
---|
84 | constructor TAppClock2.Create;
|
---|
85 | begin
|
---|
86 | inherited;
|
---|
87 | Name := 'Clock2';
|
---|
88 | end;
|
---|
89 |
|
---|
90 | end.
|
---|
91 |
|
---|