Subversion Repositories delphiutils

Rev

Rev 76 | Blame | Compare with Previous | Last modification | View Log | RSS feed

  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;
  48.     Einstellungen1: TMenuItem;
  49.     NureineUhrgleichzeitig1: TMenuItem;
  50.     AlleUhrenstoppen1: TMenuItem;
  51.     N2: TMenuItem;
  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);
  57.     procedure NureineUhrgleichzeitig1Click(Sender: TObject);
  58.     procedure FormShow(Sender: TObject);
  59.     procedure AlleUhrenstoppen1Click(Sender: TObject);
  60.   private
  61.     procedure CreateMDIChild(const Name: string);
  62.   protected
  63.     procedure SaveSettings;
  64.     procedure LoadSettings;
  65.   public
  66.     procedure StopAllTimers;
  67.   end;
  68.  
  69. var
  70.   MainForm: TMainForm;
  71.  
  72. implementation
  73.  
  74. {$R *.dfm}
  75.  
  76. uses CHILDWIN, about, IniFiles, Registry;
  77.  
  78. var
  79.   StopUhrCount: integer = 1;
  80.  
  81. procedure TMainForm.AlleUhrenstoppen1Click(Sender: TObject);
  82. begin
  83.   StopAllTimers;
  84. end;
  85.  
  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.  
  113. procedure TMainForm.FormShow(Sender: TObject);
  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;
  124. var
  125.   x: TRegIniFile;
  126. begin
  127.   x := TRegIniFile.Create('Software\ViaThinkSoft\Stoppuhren');
  128.   try
  129.     NureineUhrgleichzeitig1.Checked := x.ReadBool('Settings', 'SingleClockMode', false);
  130.   finally
  131.     FreeAndNil(x);
  132.   end;
  133. end;
  134.  
  135. procedure TMainForm.NureineUhrgleichzeitig1Click(Sender: TObject);
  136. begin
  137.   SaveSettings;
  138. end;
  139.  
  140. procedure TMainForm.SaveSettings;
  141. var
  142.   x: TRegIniFile;
  143. begin
  144.   x := TRegIniFile.Create('Software\ViaThinkSoft\Stoppuhren');
  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.  
  162. procedure TMainForm.FileExit1Execute(Sender: TObject);
  163. begin
  164.   Close;
  165. end;
  166.  
  167. end.
  168.