Rev 76 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
75 | daniel-mar | 1 | unit MAIN; |
2 | |||
3 | // TODO: Wenn man das Hauptfenster schließt, sollen nicht alle Uhren meckern |
||
4 | // TODO: Uhrzeiten abspeichern? |
||
5 | // TODO: Uhrzeitenwert manuell änderbar machen? |
||
6 | // TODO: Automatische Fenster-Anordnung funktioniert nicht korrekt mit poDefaultSizeOnly |
||
7 | |||
8 | interface |
||
9 | |||
10 | uses Windows, SysUtils, Classes, Graphics, Forms, Controls, Menus, |
||
11 | StdCtrls, Dialogs, Buttons, Messages, ExtCtrls, ComCtrls, StdActns, |
||
12 | ActnList, ToolWin, ImgList; |
||
13 | |||
14 | type |
||
15 | TMainForm = class(TForm) |
||
16 | MainMenu1: TMainMenu; |
||
17 | File1: TMenuItem; |
||
18 | FileNewItem: TMenuItem; |
||
19 | FileCloseItem: TMenuItem; |
||
20 | Window1: TMenuItem; |
||
21 | Help1: TMenuItem; |
||
22 | N1: TMenuItem; |
||
23 | FileExitItem: TMenuItem; |
||
24 | WindowCascadeItem: TMenuItem; |
||
25 | WindowTileItem: TMenuItem; |
||
26 | WindowArrangeItem: TMenuItem; |
||
27 | HelpAboutItem: TMenuItem; |
||
28 | OpenDialog: TOpenDialog; |
||
29 | WindowMinimizeItem: TMenuItem; |
||
30 | StatusBar: TStatusBar; |
||
31 | ActionList1: TActionList; |
||
32 | FileNew1: TAction; |
||
33 | FileExit1: TAction; |
||
34 | WindowCascade1: TWindowCascade; |
||
35 | WindowTileHorizontal1: TWindowTileHorizontal; |
||
36 | WindowArrangeAll1: TWindowArrange; |
||
37 | WindowMinimizeAll1: TWindowMinimizeAll; |
||
38 | HelpAbout1: TAction; |
||
39 | FileClose1: TWindowClose; |
||
40 | WindowTileVertical1: TWindowTileVertical; |
||
41 | WindowTileItem2: TMenuItem; |
||
42 | ToolBar2: TToolBar; |
||
43 | ToolButton9: TToolButton; |
||
44 | ToolButton8: TToolButton; |
||
45 | ToolButton10: TToolButton; |
||
46 | ToolButton11: TToolButton; |
||
47 | ImageList1: TImageList; |
||
76 | daniel-mar | 48 | Einstellungen1: TMenuItem; |
49 | NureineUhrgleichzeitig1: TMenuItem; |
||
50 | AlleUhrenstoppen1: TMenuItem; |
||
51 | N2: TMenuItem; |
||
75 | daniel-mar | 52 | procedure FileNew1Execute(Sender: TObject); |
53 | procedure FileOpen1Execute(Sender: TObject); |
||
54 | procedure HelpAbout1Execute(Sender: TObject); |
||
55 | procedure FileExit1Execute(Sender: TObject); |
||
56 | procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); |
||
76 | daniel-mar | 57 | procedure NureineUhrgleichzeitig1Click(Sender: TObject); |
58 | procedure FormShow(Sender: TObject); |
||
59 | procedure AlleUhrenstoppen1Click(Sender: TObject); |
||
75 | daniel-mar | 60 | private |
61 | procedure CreateMDIChild(const Name: string); |
||
77 | daniel-mar | 62 | protected |
63 | procedure SaveSettings; |
||
64 | procedure LoadSettings; |
||
75 | daniel-mar | 65 | public |
76 | daniel-mar | 66 | procedure StopAllTimers; |
75 | daniel-mar | 67 | end; |
68 | |||
69 | var |
||
70 | MainForm: TMainForm; |
||
71 | |||
72 | implementation |
||
73 | |||
74 | {$R *.dfm} |
||
75 | |||
77 | daniel-mar | 76 | uses CHILDWIN, about, IniFiles, Registry; |
75 | daniel-mar | 77 | |
78 | var |
||
79 | StopUhrCount: integer = 1; |
||
80 | |||
76 | daniel-mar | 81 | procedure TMainForm.AlleUhrenstoppen1Click(Sender: TObject); |
82 | begin |
||
83 | StopAllTimers; |
||
84 | end; |
||
85 | |||
75 | daniel-mar | 86 | procedure TMainForm.CreateMDIChild(const Name: string); |
87 | var |
||
88 | Child: TMDIChild; |
||
89 | begin |
||
90 | Child := TMDIChild.Create(Application); |
||
91 | Child.Caption := Name; |
||
92 | Child.Memo1.Lines.Text := Name; |
||
93 | end; |
||
94 | |||
95 | procedure TMainForm.FileNew1Execute(Sender: TObject); |
||
96 | begin |
||
97 | CreateMDIChild('Stoppuhr #' + IntToStr(StopUhrCount)); |
||
98 | Inc(StopUhrCount); |
||
99 | end; |
||
100 | |||
101 | procedure TMainForm.FileOpen1Execute(Sender: TObject); |
||
102 | begin |
||
103 | if OpenDialog.Execute then |
||
104 | CreateMDIChild(OpenDialog.FileName); |
||
105 | end; |
||
106 | |||
107 | procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean); |
||
108 | begin |
||
109 | // Brauchen wir nicht, da die einzelnen MDI-Fenster ja schon meckern |
||
110 | //CanClose := MessageDlg('Programm wirklich beenden?', mtConfirmation, mbYesNoCancel, 0) = mrYes; |
||
111 | end; |
||
112 | |||
76 | daniel-mar | 113 | procedure TMainForm.FormShow(Sender: TObject); |
77 | daniel-mar | 114 | begin |
115 | LoadSettings; |
||
116 | end; |
||
117 | |||
118 | procedure TMainForm.HelpAbout1Execute(Sender: TObject); |
||
119 | begin |
||
120 | AboutBox.ShowModal; |
||
121 | end; |
||
122 | |||
123 | procedure TMainForm.LoadSettings; |
||
76 | daniel-mar | 124 | var |
77 | daniel-mar | 125 | x: TRegIniFile; |
76 | daniel-mar | 126 | begin |
77 | daniel-mar | 127 | x := TRegIniFile.Create('Software\ViaThinkSoft\Stoppuhren'); |
76 | daniel-mar | 128 | try |
129 | NureineUhrgleichzeitig1.Checked := x.ReadBool('Settings', 'SingleClockMode', false); |
||
130 | finally |
||
131 | FreeAndNil(x); |
||
132 | end; |
||
133 | end; |
||
134 | |||
77 | daniel-mar | 135 | procedure TMainForm.NureineUhrgleichzeitig1Click(Sender: TObject); |
75 | daniel-mar | 136 | begin |
77 | daniel-mar | 137 | SaveSettings; |
75 | daniel-mar | 138 | end; |
139 | |||
77 | daniel-mar | 140 | procedure TMainForm.SaveSettings; |
76 | daniel-mar | 141 | var |
77 | daniel-mar | 142 | x: TRegIniFile; |
76 | daniel-mar | 143 | begin |
77 | daniel-mar | 144 | x := TRegIniFile.Create('Software\ViaThinkSoft\Stoppuhren'); |
76 | daniel-mar | 145 | try |
146 | x.WriteBool('Settings', 'SingleClockMode', NureineUhrgleichzeitig1.Checked); |
||
147 | finally |
||
148 | FreeAndNil(x); |
||
149 | end; |
||
150 | end; |
||
151 | |||
152 | procedure TMainForm.StopAllTimers; |
||
153 | var |
||
154 | i: integer; |
||
155 | begin |
||
156 | for i := 0 to MDIChildCount - 1 do |
||
157 | begin |
||
158 | TMdiChild(MDIChildren[i]).StopTimer; |
||
159 | end; |
||
160 | end; |
||
161 | |||
75 | daniel-mar | 162 | procedure TMainForm.FileExit1Execute(Sender: TObject); |
163 | begin |
||
164 | Close; |
||
165 | end; |
||
166 | |||
167 | end. |