source: branches/Independent/SystemApi.pas

Last change on this file was 68, checked in by chronos, 7 months ago
  • Added: Mouse API support.
File size: 2.3 KB
Line 
1unit SystemApi;
2
3interface
4
5uses
6 Classes, SysUtils, Api, Os, DateUtils;
7
8type
9 { TSystemApi }
10
11 TSystemApi = class(TApi)
12 private
13 FName: string;
14 FText: string;
15 procedure WriteLineSync;
16 procedure RunAppSync;
17 public
18 App: TRunningApp;
19 System: TSystem;
20 procedure WriteLine(Text: string); override;
21 procedure RunApp(Name: string); override;
22 procedure Sleep(Time: TDateTime); override;
23 function CreateWindow: THandle; override;
24 procedure SetWindowName(Handle: THandle; Name: string); override;
25 procedure SetWindowRect(Handle: THandle; Rect: TRect); override;
26 procedure SetWindowVisible(Handle: THandle; Visible: Boolean); override;
27 function GetMousePosition: TPoint; override;
28 end;
29
30
31implementation
32
33{ TSystemApi }
34
35procedure TSystemApi.WriteLineSync;
36begin
37 System.Console.Write(App.App.Name + ': ' + FText);
38end;
39
40procedure TSystemApi.RunAppSync;
41begin
42 System.RunApp(FName);
43end;
44
45procedure TSystemApi.WriteLine(Text: string);
46begin
47 FText := Text;
48 TThread.Synchronize(App.AppThread, WriteLineSync);
49end;
50
51procedure TSystemApi.RunApp(Name: string);
52begin
53 FName := Name;
54 TThread.Synchronize(App.AppThread, RunAppSync);
55end;
56
57procedure TSystemApi.Sleep(Time: TDateTime);
58begin
59 App.AppThread.Sleep(Round(Time / OneMillisecond));
60end;
61
62function TSystemApi.CreateWindow: THandle;
63var
64 Window: TWindow;
65begin
66 Window := System.Windows.AddNew;
67 Window.Handle := System.Handles.AddNew;
68 Result := Window.Handle;
69end;
70
71procedure TSystemApi.SetWindowName(Handle: THandle; Name: string);
72var
73 Window: TWindow;
74begin
75 Window := System.Windows.SearchByHandle(Handle);
76 if Assigned(Window) then begin
77 Window.Name := Name;
78 System.Redraw;
79 end;
80end;
81
82procedure TSystemApi.SetWindowRect(Handle: THandle; Rect: TRect);
83var
84 Window: TWindow;
85begin
86 Window := System.Windows.SearchByHandle(Handle);
87 if Assigned(Window) then begin
88 Window.Rect := Rect;
89 System.Redraw;
90 end;
91end;
92
93procedure TSystemApi.SetWindowVisible(Handle: THandle; Visible: Boolean);
94var
95 Window: TWindow;
96begin
97 Window := System.Windows.SearchByHandle(Handle);
98 if Assigned(Window) then begin
99 Window.Visible := Visible;
100 System.Redraw;
101 end;
102end;
103
104function TSystemApi.GetMousePosition: TPoint;
105begin
106 Result := System.Mouse.GetPosition;
107end;
108
109end.
110
Note: See TracBrowser for help on using the repository browser.