Subversion Repositories delphiutils

Rev

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.