source: branches/topdown/FormMain.pas

Last change on this file was 37, checked in by chronos, 11 months ago
  • Modified: Simplified unit names.
File size: 2.3 KB
Line 
1unit FormMain;
2
3interface
4
5uses
6 Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls,
7 OsSystem, FormMenu;
8
9type
10
11 { TFormMain }
12
13 TFormMain = class(TForm)
14 ButtonMenu: TButton;
15 PanelTasks: TPanel;
16 PanelTaskBar: TPanel;
17 procedure ButtonMenuClick(Sender: TObject);
18 procedure FormCreate(Sender: TObject);
19 procedure FormDestroy(Sender: TObject);
20 procedure FormShow(Sender: TObject);
21 private
22 FormMenu: TFormMenu;
23 procedure TaskButtonClick(Sender: TObject);
24 procedure TasksChange(Sender: TObject);
25 procedure ReloadTasks;
26 end;
27
28var
29 FormMain: TFormMain;
30
31
32implementation
33
34{$R *.lfm}
35
36uses
37 AppCalc, AppFileManager, AppTextEditor;
38
39{ TFormMain }
40
41procedure TFormMain.FormShow(Sender: TObject);
42begin
43end;
44
45procedure TFormMain.TaskButtonClick(Sender: TObject);
46begin
47 if Sender is TButton then
48 TTask(TButton(Sender).Tag).Form.Show;
49end;
50
51procedure TFormMain.TasksChange(Sender: TObject);
52begin
53 ReloadTasks;
54end;
55
56procedure TFormMain.ReloadTasks;
57var
58 I: Integer;
59 Button: TButton;
60begin
61 with PanelTasks do
62 while ControlCount > 0 do
63 RemoveControl(Controls[ControlCount - 1]);
64 for I := 0 to BaseSystem.Tasks.Count - 1 do
65 with TTask(BaseSystem.Tasks[I]) do
66 if not Terminated then begin
67 Button := TButton.Create(PanelTasks);
68 Button.Align := alLeft;
69 Button.Caption := Form.Caption;
70 Button.OnClick := TaskButtonClick;
71 Button.Tag := PtrInt(BaseSystem.Tasks[I]);
72 Button.Parent := PanelTasks;
73 Button.Width := 100;
74 Button.Visible := True;
75 end;
76end;
77
78procedure TFormMain.ButtonMenuClick(Sender: TObject);
79var
80 P: TPoint;
81begin
82 P := PanelTaskBar.ClientToScreen(Point(ButtonMenu.Left, ButtonMenu.Top - PanelTaskBar.Height));
83 FormMenu.BoundsRect := Bounds(P.X, P.Y - FormMenu.Height,
84 FormMenu.Width, FormMenu.Height);
85 FormMenu.Show;
86end;
87
88procedure TFormMain.FormCreate(Sender: TObject);
89begin
90 BoundsRect := Bounds(0, 0, Screen.Width, Screen.Height);
91 BaseSystem.ScreenForm := Self;
92 BaseSystem.Apps.AddNew('Calculator', TFormCalculator);
93 BaseSystem.Apps.AddNew('File manager', TFormFileManager);
94 BaseSystem.Apps.AddNew('Text editor', TFormTextEditor);
95 BaseSystem.Tasks.OnChange := TasksChange;
96
97 FormMenu := TFormMenu.Create(nil);
98end;
99
100procedure TFormMain.FormDestroy(Sender: TObject);
101begin
102 FreeAndNil(FormMenu);
103end;
104
105end.
106
Note: See TracBrowser for help on using the repository browser.