Changeset 6 for trunk/UFormMain.pas
- Timestamp:
- Mar 14, 2013, 9:24:41 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/UFormMain.pas
r5 r6 1 1 unit UFormMain; 2 2 3 {$mode objfpc}{$H+}3 {$mode delphi{$H+} 4 4 5 5 interface … … 7 7 uses 8 8 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, 9 ExtCtrls, Menus, ActnList, httpsend, UFioAPI; 9 ExtCtrls, Menus, ActnList, Spin, EditBtn, UFioAPI, URegistry, Registry, 10 DateUtils; 10 11 11 12 type … … 14 15 15 16 TFormMain = class(TForm) 16 ADownload: TAction; 17 ADownloadInterval: TAction; 18 ADownloadMonthly: TAction; 19 ASettings: TAction; 20 ADownloadNew: TAction; 17 21 AExit: TAction; 18 22 AShow: TAction; 19 23 ActionList1: TActionList; 20 24 Button1: TButton; 25 Button2: TButton; 26 Button3: TButton; 27 Button4: TButton; 28 Button5: TButton; 29 DateEditStart: TDateEdit; 30 DateEditTo: TDateEdit; 31 GroupBox1: TGroupBox; 32 GroupBox2: TGroupBox; 33 GroupBox3: TGroupBox; 21 34 ImageList1: TImageList; 22 LabeledEdit1: TLabeledEdit; 23 Memo1: TMemo; 35 Label1: TLabel; 36 Label2: TLabel; 37 Label3: TLabel; 38 Label4: TLabel; 24 39 MenuItem1: TMenuItem; 25 40 MenuItem2: TMenuItem; 26 41 PopupMenuTray: TPopupMenu; 42 SpinEditYear: TSpinEdit; 43 SpinEditId: TSpinEdit; 27 44 TrayIcon1: TTrayIcon; 28 procedure ADownloadExecute(Sender: TObject); 45 procedure ADownloadIntervalExecute(Sender: TObject); 46 procedure ADownloadMonthlyExecute(Sender: TObject); 47 procedure ADownloadNewExecute(Sender: TObject); 29 48 procedure AExitExecute(Sender: TObject); 49 procedure ASettingsExecute(Sender: TObject); 30 50 procedure AShowExecute(Sender: TObject); 51 procedure FormClose(Sender: TObject; var CloseAction: TCloseAction); 52 procedure FormCreate(Sender: TObject); 31 53 private 32 54 { private declarations } 33 55 public 34 { public declarations } 56 RegistryContext: TRegistryContext; 57 Token: string; 58 Format: TFioDataFormat; 59 TargetDirectory: string; 60 ReportYear: Integer; 61 ReportId: Integer; 62 ReportTimeFrom: TDateTime; 63 ReportTimeTo: TDateTime; 64 procedure LoadInterface; 65 procedure SaveInterface; 66 procedure SaveToRegistry(Context: TRegistryContext); 67 procedure LoadFromRegistry(Context: TRegistryContext); 35 68 end; 36 69 … … 42 75 {$R *.lfm} 43 76 77 uses 78 UFormSettings; 79 80 resourcestring 81 SDownloadNotSuccess = 'StaÅŸenà nebylo úspÄÅ¡né'; 82 83 44 84 { TFormMain } 45 85 … … 49 89 end; 50 90 91 procedure TFormMain.FormClose(Sender: TObject; var CloseAction: TCloseAction); 92 begin 93 SaveInterface; 94 SaveToRegistry(RegistryContext); 95 end; 96 97 procedure TFormMain.FormCreate(Sender: TObject); 98 begin 99 RegistryContext := RegContext(HKEY_CURRENT_USER, '\Software\Chronosoft\FioInfo'); 100 LoadFromRegistry(RegistryContext); 101 LoadInterface; 102 end; 103 104 procedure TFormMain.LoadInterface; 105 begin 106 DateEditStart.Date := ReportTimeFrom; 107 DateEditTo.Date := ReportTimeTo; 108 SpinEditYear.Value := ReportYear; 109 SpinEditId.Value := ReportId; 110 end; 111 112 procedure TFormMain.SaveInterface; 113 begin 114 ReportTimeFrom := DateEditStart.Date; 115 ReportTimeTo := DateEditTo.Date; 116 ReportYear := SpinEditYear.Value; 117 ReportId := SpinEditId.Value; 118 end; 119 120 procedure TFormMain.SaveToRegistry(Context: TRegistryContext); 121 begin 122 with TRegistryEx.Create do 123 try 124 RootKey := Context.RootKey; 125 OpenKey(Context.Key, True); 126 WriteString('TargetDir', TargetDirectory); 127 WriteInteger('DataFormat', Integer(Format)); 128 WriteString('Token', Token); 129 WriteDate('ReportTimeFrom', ReportTimeFrom); 130 WriteDateTime('ReportTimeTo', ReportTimeTo); 131 WriteInteger('ReportYear', ReportYear); 132 WriteInteger('ReportId', ReportId); 133 finally 134 Free; 135 end; 136 end; 137 138 procedure TFormMain.LoadFromRegistry(Context: TRegistryContext); 139 begin 140 with TRegistryEx.Create do 141 try 142 RootKey := Context.RootKey; 143 OpenKey(Context.Key, True); 144 TargetDirectory := ReadStringWithDefault('TargetDir', ExtractFileDir(Application.ExeName)); 145 Format := TFioDataFormat(ReadIntegerWithDefault('DataFormat', Integer(dfXML))); 146 Token := ReadStringWithDefault('Token', ''); 147 ReportTimeFrom := ReadDateTimeWithDefault('ReportTimeFrom', Now); 148 ReportTimeTo := ReadDateTimeWithDefault('ReportTimeTo', Now); 149 ReportYear := ReadIntegerWithDefault('ReportYear', YearOf(Now)); 150 ReportId := ReadIntegerWithDefault('ReportId', MonthOf(Now)); 151 finally 152 Free; 153 end; 154 end; 155 51 156 procedure TFormMain.AExitExecute(Sender: TObject); 52 157 begin 53 Application.Terminate; 54 end; 55 56 procedure TFormMain.ADownloadExecute(Sender: TObject); 158 Close; 159 end; 160 161 procedure TFormMain.ASettingsExecute(Sender: TObject); 162 begin 163 FormSettings.Load; 164 if FormSettings.ShowModal = mrOk then begin 165 FormSettings.Save; 166 SaveToRegistry(RegistryContext); 167 end; 168 end; 169 170 procedure TFormMain.ADownloadNewExecute(Sender: TObject); 57 171 var 58 172 FioAPI: TFioAPI; 173 List: TStringList; 59 174 begin 60 175 FioAPI := TFioAPI.Create; 61 try 62 FioAPI.Token := LabeledEdit1.Text; 63 FioAPI.Format := 'xml'; 64 FioAPI.DownloadInterval(EncodeDate(2013, 03, 01), EncodeDate(2013, 03, 14), 65 Memo1.Lines); 176 List := TStringList.Create; 177 try 178 FioAPI.Format := Format; 179 FioAPI.Token := Token; 180 if FioAPI.DownloadLast(List) then begin 181 List.SaveToFile('VÃœpis ' + FormatDateTime('yyyy-mm-dd hh-nn-ss', Now) + 182 ExtensionSeparator + DataFormatURL[FioAPI.Format]); 183 end else ShowMessage(SDownloadNotSuccess); 66 184 finally 67 185 FioAPI.Free; 186 List.Free; 187 end; 188 end; 189 190 procedure TFormMain.ADownloadMonthlyExecute(Sender: TObject); 191 var 192 FioAPI: TFioAPI; 193 List: TStringList; 194 begin 195 FioAPI := TFioAPI.Create; 196 List := TStringList.Create; 197 try 198 FioAPI.Format := Format; 199 FioAPI.Token := Token; 200 if FioAPI.DownloadMonthly(SpinEditYear.Value, SpinEditId.Value, List) then begin 201 List.SaveToFile('VÃœpis mÄsÃÄnà ' + IntToStr(SpinEditYear.Value) + 202 '-' + IntToStr(SpinEditId.Value) + 203 ExtensionSeparator + DataFormatURL[FioAPI.Format]); 204 end else ShowMessage(SDownloadNotSuccess); 205 finally 206 FioAPI.Free; 207 List.Free; 208 end; 209 end; 210 211 procedure TFormMain.ADownloadIntervalExecute(Sender: TObject); 212 var 213 FioAPI: TFioAPI; 214 List: TStringList; 215 begin 216 FioAPI := TFioAPI.Create; 217 List := TStringList.Create; 218 try 219 FioAPI.Format := Format; 220 FioAPI.Token := Token; 221 if FioAPI.DownloadInterval(DateEditStart.Date, DateEditTo.Date, List) then begin 222 List.SaveToFile('VÃœpis ' + FormatDateTime('yyyy-mm-dd', DateEditStart.Date) + 223 ' ' + FormatDateTime('yyyy-mm-dd', DateEditTo.Date) + 224 ExtensionSeparator + DataFormatURL[FioAPI.Format]); 225 end else ShowMessage(SDownloadNotSuccess); 226 finally 227 FioAPI.Free; 228 List.Free; 68 229 end; 69 230 end;
Note:
See TracChangeset
for help on using the changeset viewer.