| [453] | 1 | //kt -- Modified with SourceScanner on 8/8/2007 | 
|---|
|  | 2 | unit fTemplateFieldEditor; | 
|---|
|  | 3 |  | 
|---|
|  | 4 | interface | 
|---|
|  | 5 |  | 
|---|
|  | 6 | uses | 
|---|
|  | 7 | Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, | 
|---|
|  | 8 | ORCtrls, StdCtrls, ExtCtrls, Menus, ComCtrls, uTemplateFields, ORFn, | 
|---|
|  | 9 | ToolWin, MenuBar, ORClasses, ORDtTm, DKLang; | 
|---|
|  | 10 |  | 
|---|
|  | 11 | type | 
|---|
|  | 12 | TfrmTemplateFieldEditor = class(TForm) | 
|---|
|  | 13 | pnlBottom: TPanel; | 
|---|
|  | 14 | btnOK: TButton; | 
|---|
|  | 15 | btnCancel: TButton; | 
|---|
|  | 16 | pnlObjs: TPanel; | 
|---|
|  | 17 | cbxObjs: TORComboBox; | 
|---|
|  | 18 | lblObjs: TLabel; | 
|---|
|  | 19 | splLeft: TSplitter; | 
|---|
|  | 20 | pnlRight: TPanel; | 
|---|
|  | 21 | pnlPreview: TPanel; | 
|---|
|  | 22 | lblNotes: TLabel; | 
|---|
|  | 23 | pnlObjInfo: TPanel; | 
|---|
|  | 24 | lblName: TLabel; | 
|---|
|  | 25 | lblS2: TLabel; | 
|---|
|  | 26 | lblLM: TLabel; | 
|---|
|  | 27 | edtName: TCaptionEdit; | 
|---|
|  | 28 | splBottom: TSplitter; | 
|---|
|  | 29 | lblS1: TLabel; | 
|---|
|  | 30 | edtLMText: TCaptionEdit; | 
|---|
|  | 31 | cbxType: TORComboBox; | 
|---|
|  | 32 | lblType: TLabel; | 
|---|
|  | 33 | reNotes: TRichEdit; | 
|---|
|  | 34 | btnApply: TButton; | 
|---|
|  | 35 | btnPreview: TButton; | 
|---|
|  | 36 | mnuMain: TMainMenu; | 
|---|
|  | 37 | mnuAction: TMenuItem; | 
|---|
|  | 38 | mnuNew: TMenuItem; | 
|---|
|  | 39 | mnuCopy: TMenuItem; | 
|---|
|  | 40 | cbHide: TCheckBox; | 
|---|
|  | 41 | pnlTop: TPanel; | 
|---|
|  | 42 | MenuBar1: TMenuBar; | 
|---|
|  | 43 | btnNew: TButton; | 
|---|
|  | 44 | btnCopy: TButton; | 
|---|
|  | 45 | mnuDelete: TMenuItem; | 
|---|
|  | 46 | btnDelete: TButton; | 
|---|
|  | 47 | mnuPreview: TMenuItem; | 
|---|
|  | 48 | popText: TPopupMenu; | 
|---|
|  | 49 | mnuBPUndo: TMenuItem; | 
|---|
|  | 50 | N8: TMenuItem; | 
|---|
|  | 51 | mnuBPCut: TMenuItem; | 
|---|
|  | 52 | mnuBPCopy: TMenuItem; | 
|---|
|  | 53 | mnuBPPaste: TMenuItem; | 
|---|
|  | 54 | mnuBPSelectAll: TMenuItem; | 
|---|
|  | 55 | N2: TMenuItem; | 
|---|
|  | 56 | mnuBPCheckGrammar: TMenuItem; | 
|---|
|  | 57 | mnuBPSpellCheck: TMenuItem; | 
|---|
|  | 58 | lblTextLen: TLabel; | 
|---|
|  | 59 | edtTextLen: TCaptionEdit; | 
|---|
|  | 60 | udTextLen: TUpDown; | 
|---|
|  | 61 | pnlSwap: TPanel; | 
|---|
|  | 62 | edtDefault: TCaptionEdit; | 
|---|
|  | 63 | pnlNum: TPanel; | 
|---|
|  | 64 | edtURL: TCaptionEdit; | 
|---|
|  | 65 | udDefNum: TUpDown; | 
|---|
|  | 66 | edtDefNum: TCaptionEdit; | 
|---|
|  | 67 | udMinVal: TUpDown; | 
|---|
|  | 68 | edtMinVal: TCaptionEdit; | 
|---|
|  | 69 | lblMin: TLabel; | 
|---|
|  | 70 | udInc: TUpDown; | 
|---|
|  | 71 | edtInc: TCaptionEdit; | 
|---|
|  | 72 | lblInc: TLabel; | 
|---|
|  | 73 | lblMaxVal: TLabel; | 
|---|
|  | 74 | edtMaxVal: TCaptionEdit; | 
|---|
|  | 75 | udMaxVal: TUpDown; | 
|---|
|  | 76 | reItems: TRichEdit; | 
|---|
|  | 77 | lblLength: TLabel; | 
|---|
|  | 78 | edtLen: TCaptionEdit; | 
|---|
|  | 79 | udLen: TUpDown; | 
|---|
|  | 80 | cbxDefault: TORComboBox; | 
|---|
|  | 81 | lblS3: TLabel; | 
|---|
|  | 82 | gbIndent: TGroupBox; | 
|---|
|  | 83 | lblIndent: TLabel; | 
|---|
|  | 84 | edtIndent: TCaptionEdit; | 
|---|
|  | 85 | udIndent: TUpDown; | 
|---|
|  | 86 | udPad: TUpDown; | 
|---|
|  | 87 | edtPad: TCaptionEdit; | 
|---|
|  | 88 | lblPad: TLabel; | 
|---|
|  | 89 | gbMisc: TGroupBox; | 
|---|
|  | 90 | cbActive: TCheckBox; | 
|---|
|  | 91 | cbRequired: TCheckBox; | 
|---|
|  | 92 | cbSepLines: TCheckBox; | 
|---|
|  | 93 | pnlDate: TPanel; | 
|---|
|  | 94 | edtDateDef: TCaptionEdit; | 
|---|
|  | 95 | cbxDateType: TORComboBox; | 
|---|
|  | 96 | lblDateType: TLabel; | 
|---|
|  | 97 | cbExclude: TCheckBox; | 
|---|
|  | 98 | lblReq: TStaticText; | 
|---|
|  | 99 | lblLine: TLabel; | 
|---|
|  | 100 | lblCol: TLabel; | 
|---|
|  | 101 | N14: TMenuItem; | 
|---|
|  | 102 | mnuInsertTemplateField: TMenuItem; | 
|---|
|  | 103 | DKLanguageController1: TDKLanguageController; | 
|---|
|  | 104 | procedure cbxObjsNeedData(Sender: TObject; const StartFrom: String; | 
|---|
|  | 105 | Direction, InsertAt: Integer); | 
|---|
|  | 106 | procedure FormCreate(Sender: TObject); | 
|---|
|  | 107 | procedure cbxObjsChange(Sender: TObject); | 
|---|
|  | 108 | procedure edtNameChange(Sender: TObject); | 
|---|
|  | 109 | procedure cbxTypeChange(Sender: TObject); | 
|---|
|  | 110 | procedure edtLenChange(Sender: TObject); | 
|---|
|  | 111 | procedure edtDefaultChange(Sender: TObject); | 
|---|
|  | 112 | procedure cbxDefaultChange(Sender: TObject); | 
|---|
|  | 113 | procedure edtLMTextChange(Sender: TObject); | 
|---|
|  | 114 | procedure cbActiveClick(Sender: TObject); | 
|---|
|  | 115 | procedure mnuNewClick(Sender: TObject); | 
|---|
|  | 116 | procedure btnOKClick(Sender: TObject); | 
|---|
|  | 117 | procedure btnApplyClick(Sender: TObject); | 
|---|
|  | 118 | procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); | 
|---|
|  | 119 | procedure btnCancelClick(Sender: TObject); | 
|---|
|  | 120 | procedure reItemsChange(Sender: TObject); | 
|---|
|  | 121 | procedure cbHideClick(Sender: TObject); | 
|---|
|  | 122 | procedure edtNameExit(Sender: TObject); | 
|---|
|  | 123 | procedure mnuCopyClick(Sender: TObject); | 
|---|
|  | 124 | procedure mnuDeleteClick(Sender: TObject); | 
|---|
|  | 125 | procedure btnPreviewClick(Sender: TObject); | 
|---|
|  | 126 | procedure mnuActionClick(Sender: TObject); | 
|---|
|  | 127 | procedure cbRequiredClick(Sender: TObject); | 
|---|
|  | 128 | procedure pnlObjsResize(Sender: TObject); | 
|---|
|  | 129 | procedure FormDestroy(Sender: TObject); | 
|---|
|  | 130 | procedure cbxObjsSynonymCheck(Sender: TObject; const Text: String; | 
|---|
|  | 131 | var IsSynonym: Boolean); | 
|---|
|  | 132 | procedure popTextPopup(Sender: TObject); | 
|---|
|  | 133 | procedure mnuBPUndoClick(Sender: TObject); | 
|---|
|  | 134 | procedure mnuBPCutClick(Sender: TObject); | 
|---|
|  | 135 | procedure mnuBPCopyClick(Sender: TObject); | 
|---|
|  | 136 | procedure mnuBPPasteClick(Sender: TObject); | 
|---|
|  | 137 | procedure mnuBPSelectAllClick(Sender: TObject); | 
|---|
|  | 138 | procedure mnuBPCheckGrammarClick(Sender: TObject); | 
|---|
|  | 139 | procedure mnuBPSpellCheckClick(Sender: TObject); | 
|---|
|  | 140 | procedure cbSepLinesClick(Sender: TObject); | 
|---|
|  | 141 | procedure edtpopControlEnter(Sender: TObject); | 
|---|
|  | 142 | procedure cbxObjsKeyDown(Sender: TObject; var Key: Word; | 
|---|
|  | 143 | Shift: TShiftState); | 
|---|
|  | 144 | procedure edtTextLenChange(Sender: TObject); | 
|---|
|  | 145 | procedure edtDefNumChange(Sender: TObject); | 
|---|
|  | 146 | procedure edtMinValChange(Sender: TObject); | 
|---|
|  | 147 | procedure edtMaxValChange(Sender: TObject); | 
|---|
|  | 148 | procedure edtIncChange(Sender: TObject); | 
|---|
|  | 149 | procedure edtURLChange(Sender: TObject); | 
|---|
|  | 150 | procedure edtPadChange(Sender: TObject); | 
|---|
|  | 151 | procedure edtIndentChange(Sender: TObject); | 
|---|
|  | 152 | procedure reNotesChange(Sender: TObject); | 
|---|
|  | 153 | procedure cbxDateTypeChange(Sender: TObject); | 
|---|
|  | 154 | procedure cbExcludeClick(Sender: TObject); | 
|---|
|  | 155 | procedure FormResize(Sender: TObject); | 
|---|
|  | 156 | procedure reItemsResizeRequest(Sender: TObject; Rect: TRect); | 
|---|
|  | 157 | procedure reItemsSelectionChange(Sender: TObject); | 
|---|
|  | 158 | procedure mnuInsertTemplateFieldClick(Sender: TObject); | 
|---|
|  | 159 | procedure ControlExit(Sender: TObject); | 
|---|
|  | 160 | procedure reNotesKeyUp(Sender: TObject; var Key: Word; | 
|---|
|  | 161 | Shift: TShiftState); | 
|---|
|  | 162 | private | 
|---|
|  | 163 | //kt Begin Mod (change Consts to Vars) 8/8/2007 | 
|---|
|  | 164 | DefTxt  : string;  //kt | 
|---|
|  | 165 | //kt End Mod ------------------- | 
|---|
|  | 166 | CopyFld, FFld: TTemplateField; | 
|---|
|  | 167 | FUpdating: boolean; | 
|---|
|  | 168 | FReloadChanges: boolean; | 
|---|
|  | 169 | FChangesPending: boolean; | 
|---|
|  | 170 | FDeleted: TORStringList; | 
|---|
|  | 171 | FHideSynonyms: boolean; | 
|---|
|  | 172 | FLastRect: TRect; | 
|---|
|  | 173 | procedure UpdateControls; | 
|---|
|  | 174 | procedure SyncItems(DoUpdate: boolean = TRUE); | 
|---|
|  | 175 | function SaveChanges: boolean; | 
|---|
|  | 176 | procedure ResetListEntry; | 
|---|
|  | 177 | procedure VerifyName; | 
|---|
|  | 178 | procedure EnableButtons; | 
|---|
|  | 179 | procedure SetFld(const Value: TTemplateField); | 
|---|
|  | 180 | procedure SetHideSynonyms(const Value: boolean); | 
|---|
|  | 181 | function GetPopupControl: TCustomEdit; | 
|---|
|  | 182 | public | 
|---|
|  | 183 | { Public declarations } | 
|---|
|  | 184 | end; | 
|---|
|  | 185 |  | 
|---|
|  | 186 | function EditDialogFields: boolean; | 
|---|
|  | 187 |  | 
|---|
|  | 188 | implementation | 
|---|
|  | 189 |  | 
|---|
|  | 190 | uses rTemplates, fTemplateDialog, Clipbrd, uSpell, uConst, | 
|---|
|  | 191 | fTemplateFields; | 
|---|
|  | 192 |  | 
|---|
|  | 193 | {$R *.DFM} | 
|---|
|  | 194 |  | 
|---|
|  | 195 | { TfrmDlgObjEditor } | 
|---|
|  | 196 |  | 
|---|
|  | 197 | var | 
|---|
|  | 198 | frmTemplateFields: TfrmTemplateFields = nil; | 
|---|
|  | 199 |  | 
|---|
|  | 200 |  | 
|---|
|  | 201 | function EditDialogFields: boolean; | 
|---|
|  | 202 | var | 
|---|
|  | 203 | frmTemplateFieldEditor: TfrmTemplateFieldEditor; | 
|---|
|  | 204 |  | 
|---|
|  | 205 | begin | 
|---|
|  | 206 | frmTemplateFieldEditor := TfrmTemplateFieldEditor.Create(Application); | 
|---|
|  | 207 | try | 
|---|
|  | 208 | frmTemplateFieldEditor.ShowModal; | 
|---|
|  | 209 | Result := frmTemplateFieldEditor.FReloadChanges; | 
|---|
|  | 210 | finally | 
|---|
|  | 211 | frmTemplateFieldEditor.Free; | 
|---|
|  | 212 | end; | 
|---|
|  | 213 | end; | 
|---|
|  | 214 |  | 
|---|
|  | 215 | procedure TfrmTemplateFieldEditor.UpdateControls; | 
|---|
|  | 216 | //const | 
|---|
|  | 217 | //DefTxt = 'Default:';  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 218 |  | 
|---|
|  | 219 | var | 
|---|
|  | 220 | ok, edt, txt, tmp: boolean; | 
|---|
|  | 221 | Y, idx, Max: integer; | 
|---|
|  | 222 | wpTxt: string; | 
|---|
|  | 223 | DefTxt : string;  //kt | 
|---|
|  | 224 |  | 
|---|
|  | 225 | procedure SetLbl(const Text: string); | 
|---|
|  | 226 | var | 
|---|
|  | 227 | lbl: TLabel; | 
|---|
|  | 228 |  | 
|---|
|  | 229 | begin | 
|---|
|  | 230 | inc(idx); | 
|---|
|  | 231 | case idx of | 
|---|
|  | 232 | 1: lbl := lblS1; | 
|---|
|  | 233 | 2: lbl := lblS2; | 
|---|
|  | 234 | 3: lbl := lblS3; | 
|---|
|  | 235 | else | 
|---|
|  | 236 | lbl := nil; | 
|---|
|  | 237 | end; | 
|---|
|  | 238 | if assigned(lbl) then | 
|---|
|  | 239 | lbl.Caption := Text; | 
|---|
|  | 240 | end; | 
|---|
|  | 241 |  | 
|---|
|  | 242 | procedure SetY(Control: TControl; const Text: string); | 
|---|
|  | 243 | begin | 
|---|
|  | 244 | if (Control.Visible) then | 
|---|
|  | 245 | begin | 
|---|
|  | 246 | Control.Top := Y; | 
|---|
|  | 247 | inc(Y, Control.Height); | 
|---|
|  | 248 | SetLbl(Text); | 
|---|
|  | 249 | end; | 
|---|
|  | 250 | end; | 
|---|
|  | 251 |  | 
|---|
|  | 252 | begin | 
|---|
|  | 253 | DefTxt := DKLangConstW('fTemplateFieldEditor_Defaultx');  //kt | 
|---|
|  | 254 | if(not FUpdating) then | 
|---|
|  | 255 | begin | 
|---|
|  | 256 | FUpdating := TRUE; | 
|---|
|  | 257 | try | 
|---|
|  | 258 | Y := 0; | 
|---|
|  | 259 | idx := 0; | 
|---|
|  | 260 | ok := assigned(FFld); | 
|---|
|  | 261 | if(ok) then | 
|---|
|  | 262 | begin | 
|---|
|  | 263 | edt := (FFld.FldType in EditLenTypes); | 
|---|
|  | 264 | txt := (FFld.FldType in EditDfltTypes); | 
|---|
|  | 265 | end | 
|---|
|  | 266 | else | 
|---|
|  | 267 | begin | 
|---|
|  | 268 | edt := FALSE; | 
|---|
|  | 269 | txt := FALSE; | 
|---|
|  | 270 | end; | 
|---|
|  | 271 | lblName.Enabled := ok; | 
|---|
|  | 272 | edtName.Enabled := ok; | 
|---|
|  | 273 | lblType.Enabled := ok; | 
|---|
|  | 274 | cbxType.Enabled := ok; | 
|---|
|  | 275 | lblLM.Enabled := ok; | 
|---|
|  | 276 | edtLMText.Enabled := ok; | 
|---|
|  | 277 | cbActive.Enabled := ok; | 
|---|
|  | 278 |  | 
|---|
|  | 279 | gbMisc.Enabled := ok; | 
|---|
|  | 280 | lblNotes.Enabled := ok; | 
|---|
|  | 281 | reNotes.Enabled := ok; | 
|---|
|  | 282 | if(ok) then | 
|---|
|  | 283 | begin | 
|---|
|  | 284 | edtName.Text := FFld.FldName; | 
|---|
|  | 285 | cbxType.ItemIndex := ord(FFld.FldType); | 
|---|
|  | 286 | edtLMText.Text := FFld.LMText; | 
|---|
|  | 287 | cbActive.Checked := FFld.Inactive; | 
|---|
|  | 288 | reNotes.Lines.Text := FFld.Notes; | 
|---|
|  | 289 | end | 
|---|
|  | 290 | else | 
|---|
|  | 291 | begin | 
|---|
|  | 292 | edtName.Text := ''; | 
|---|
|  | 293 | cbxType.ItemIndex := -1; | 
|---|
|  | 294 | edtLMText.Text := ''; | 
|---|
|  | 295 | cbActive.Checked := FALSE; | 
|---|
|  | 296 | reNotes.Clear; | 
|---|
|  | 297 | end; | 
|---|
|  | 298 |  | 
|---|
|  | 299 | tmp := ok and (not (FFld.FldType in NoRequired)); | 
|---|
|  | 300 | cbRequired.Enabled := tmp; | 
|---|
|  | 301 | if tmp then | 
|---|
|  | 302 | cbRequired.Checked := FFld.Required | 
|---|
|  | 303 | else | 
|---|
|  | 304 | cbRequired.Checked := FALSE; | 
|---|
|  | 305 |  | 
|---|
|  | 306 | pnlSwap.DisableAlign; | 
|---|
|  | 307 | try | 
|---|
|  | 308 | tmp := ok and (FFld.FldType in SepLinesTypes); | 
|---|
|  | 309 | cbSepLines.Enabled := tmp; | 
|---|
|  | 310 | if tmp then | 
|---|
|  | 311 | cbSepLines.Checked := FFld.SepLines | 
|---|
|  | 312 | else | 
|---|
|  | 313 | cbSepLines.Checked := FALSE; | 
|---|
|  | 314 |  | 
|---|
|  | 315 | tmp := ok and (FFld.FldType in ExcludeText); | 
|---|
|  | 316 | cbExclude.Enabled := tmp; | 
|---|
|  | 317 | if tmp then | 
|---|
|  | 318 | cbExclude.Checked := FFld.SepLines | 
|---|
|  | 319 | else | 
|---|
|  | 320 | cbExclude.Checked := FALSE; | 
|---|
|  | 321 |  | 
|---|
|  | 322 | lblLength.Enabled := edt; | 
|---|
|  | 323 | if ok and (FFld.FldType = dftWP) then | 
|---|
|  | 324 | begin | 
|---|
|  | 325 | //        lblTextLen.Caption := 'Num Lines:';  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 326 | lblTextLen.Caption := DKLangConstW('fTemplateFieldEditor_Num_Linesx'); //kt added 8/8/2007 | 
|---|
|  | 327 | udLen.Min := 5; | 
|---|
|  | 328 | udLen.Max := 74; | 
|---|
|  | 329 | udTextLen.Min := 2; | 
|---|
|  | 330 | udTextLen.Max := MaxTFWPLines; | 
|---|
|  | 331 | end | 
|---|
|  | 332 | else | 
|---|
|  | 333 | begin | 
|---|
|  | 334 | udLen.Min := 1; | 
|---|
|  | 335 | udLen.Max := 70; | 
|---|
|  | 336 | udTextLen.Min := 0; | 
|---|
|  | 337 | udTextLen.Max := 240; | 
|---|
|  | 338 | //        lblTextLen.Caption := 'Text Len:';  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 339 | lblTextLen.Caption := DKLangConstW('fTemplateFieldEditor_Text_Lenx'); //kt added 8/8/2007 | 
|---|
|  | 340 | end; | 
|---|
|  | 341 |  | 
|---|
|  | 342 | lblTextLen.Enabled := edt; | 
|---|
|  | 343 | edtTextLen.Enabled := edt; | 
|---|
|  | 344 | udTextLen.Enabled := edt; | 
|---|
|  | 345 | edtLen.Enabled := edt; | 
|---|
|  | 346 | udLen.Enabled := edt; | 
|---|
|  | 347 |  | 
|---|
|  | 348 | edtDefault.Visible := txt; | 
|---|
|  | 349 | SetY(edtDefault, DefTxt); | 
|---|
|  | 350 | Max := MaxTFEdtLen; | 
|---|
|  | 351 |  | 
|---|
|  | 352 | if(edt) then | 
|---|
|  | 353 | begin | 
|---|
|  | 354 | udLen.Associate := edtLen; | 
|---|
|  | 355 | udLen.Position := FFld.MaxLen; | 
|---|
|  | 356 | udTextLen.Associate := edtTextLen; | 
|---|
|  | 357 | udTextLen.Position := FFld.TextLen; | 
|---|
|  | 358 | if txt then | 
|---|
|  | 359 | Max := FFld.MaxLen; | 
|---|
|  | 360 | end | 
|---|
|  | 361 | else | 
|---|
|  | 362 | begin | 
|---|
|  | 363 | udLen.Associate := nil; | 
|---|
|  | 364 | edtLen.Text := ''; | 
|---|
|  | 365 | udTextLen.Associate := nil; | 
|---|
|  | 366 | edtTextLen.Text := ''; | 
|---|
|  | 367 | end; | 
|---|
|  | 368 |  | 
|---|
|  | 369 | if txt then | 
|---|
|  | 370 | begin | 
|---|
|  | 371 | edtDefault.MaxLength := Max; | 
|---|
|  | 372 | edtDefault.Text := copy(FFld.EditDefault, 1, Max); | 
|---|
|  | 373 | end; | 
|---|
|  | 374 |  | 
|---|
|  | 375 | gbIndent.Enabled := ok; | 
|---|
|  | 376 | lblIndent.Enabled := ok; | 
|---|
|  | 377 | edtIndent.Enabled := ok; | 
|---|
|  | 378 | udIndent.Enabled := ok; | 
|---|
|  | 379 | if ok then | 
|---|
|  | 380 | begin | 
|---|
|  | 381 | udIndent.Associate := edtIndent; | 
|---|
|  | 382 | udIndent.Position := FFld.Indent; | 
|---|
|  | 383 | end | 
|---|
|  | 384 | else | 
|---|
|  | 385 | begin | 
|---|
|  | 386 | udIndent.Associate := nil; | 
|---|
|  | 387 | edtIndent.Text := ''; | 
|---|
|  | 388 | end; | 
|---|
|  | 389 |  | 
|---|
|  | 390 | tmp := ok and (not cbExclude.Checked); | 
|---|
|  | 391 | lblPad.Enabled := tmp; | 
|---|
|  | 392 | edtPad.Enabled := tmp; | 
|---|
|  | 393 | udPad.Enabled := tmp; | 
|---|
|  | 394 | if tmp then | 
|---|
|  | 395 | begin | 
|---|
|  | 396 | udPad.Associate := edtPad; | 
|---|
|  | 397 | udPad.Position := FFld.Pad; | 
|---|
|  | 398 | end | 
|---|
|  | 399 | else | 
|---|
|  | 400 | begin | 
|---|
|  | 401 | udPad.Associate := nil; | 
|---|
|  | 402 | edtPad.Text := ''; | 
|---|
|  | 403 | end; | 
|---|
|  | 404 |  | 
|---|
|  | 405 | tmp := ok and (FFld.FldType = dftNumber); | 
|---|
|  | 406 | pnlNum.Visible := tmp; | 
|---|
|  | 407 | SetY(pnlNum, DefTxt); | 
|---|
|  | 408 | if tmp then | 
|---|
|  | 409 | begin | 
|---|
|  | 410 | udDefNum.Position := StrToIntDef(FFld.EditDefault, 0); | 
|---|
|  | 411 | udMinVal.Position := FFld.MinVal; | 
|---|
|  | 412 | udMaxVal.Position := FFld.MaxVal; | 
|---|
|  | 413 | udInc.Position := FFld.Increment; | 
|---|
|  | 414 | end; | 
|---|
|  | 415 |  | 
|---|
|  | 416 | tmp := ok and (FFld.FldType = dftDate); | 
|---|
|  | 417 | pnlDate.Visible := tmp; | 
|---|
|  | 418 | SetY(pnlDate, DefTxt); | 
|---|
|  | 419 | if tmp then | 
|---|
|  | 420 | begin | 
|---|
|  | 421 | edtDateDef.Text := FFld.EditDefault; | 
|---|
|  | 422 | cbxDateType.SelectByID(TemplateFieldDateCodes[FFld.DateType]); | 
|---|
|  | 423 | end; | 
|---|
|  | 424 |  | 
|---|
|  | 425 | tmp := ok and (FFld.FldType in ItemDfltTypes); | 
|---|
|  | 426 | cbxDefault.Visible := tmp; | 
|---|
|  | 427 | SetY(cbxDefault, DefTxt); | 
|---|
|  | 428 |  | 
|---|
|  | 429 | tmp := ok and (FFld.FldType = dftHyperlink); | 
|---|
|  | 430 | edtURL.Visible := tmp; | 
|---|
|  | 431 | //      SetY(edtURL, 'Address:');  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 432 | SetY(edtURL, DKLangConstW('fTemplateFieldEditor_Addressx')); //kt added 8/8/2007 | 
|---|
|  | 433 | if tmp then | 
|---|
|  | 434 | edtURL.Text := FFld.URL; | 
|---|
|  | 435 |  | 
|---|
|  | 436 | tmp := ok and (FFld.FldType in FldItemTypes); | 
|---|
|  | 437 | reItems.Visible := tmp; | 
|---|
|  | 438 | lblLine.Visible := tmp; | 
|---|
|  | 439 | lblCol.Visible := tmp; | 
|---|
|  | 440 | if tmp then | 
|---|
|  | 441 | begin | 
|---|
|  | 442 | if FFld.FldType = dftWP then | 
|---|
|  | 443 | wpTxt := DefTxt | 
|---|
|  | 444 | else | 
|---|
|  | 445 | //          wpTxt := 'Items:';  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 446 | wpTxt := DKLangConstW('fTemplateFieldEditor_Itemsx'); //kt added 8/8/2007 | 
|---|
|  | 447 | end | 
|---|
|  | 448 | else | 
|---|
|  | 449 | wpTxt := ''; | 
|---|
|  | 450 | SetY(reItems, wpTxt); | 
|---|
|  | 451 | if tmp then | 
|---|
|  | 452 | reItems.Lines.Text := FFld.Items | 
|---|
|  | 453 | else | 
|---|
|  | 454 | reItems.Clear; | 
|---|
|  | 455 | finally | 
|---|
|  | 456 | pnlSwap.EnableAlign; | 
|---|
|  | 457 | end; | 
|---|
|  | 458 |  | 
|---|
|  | 459 | SetLbl(''); | 
|---|
|  | 460 | SetLbl(''); | 
|---|
|  | 461 | SetLbl(''); | 
|---|
|  | 462 | SyncItems(FALSE); | 
|---|
|  | 463 | FormResize(Self); | 
|---|
|  | 464 | finally | 
|---|
|  | 465 | FUpdating := FALSE; | 
|---|
|  | 466 | end; | 
|---|
|  | 467 | end; | 
|---|
|  | 468 | end; | 
|---|
|  | 469 |  | 
|---|
|  | 470 | procedure TfrmTemplateFieldEditor.SyncItems(DoUpdate: boolean = TRUE); | 
|---|
|  | 471 | var | 
|---|
|  | 472 | i, idx, Siz, Max1, Max2: integer; | 
|---|
|  | 473 | ChangeSizes: boolean; | 
|---|
|  | 474 |  | 
|---|
|  | 475 | begin | 
|---|
|  | 476 | if DoUpdate and FUpdating then | 
|---|
|  | 477 | exit; | 
|---|
|  | 478 | Max1 := 0; | 
|---|
|  | 479 | Max2 := 0; | 
|---|
|  | 480 | ChangeSizes := FALSE; | 
|---|
|  | 481 | FUpdating := TRUE; | 
|---|
|  | 482 | try | 
|---|
|  | 483 | cbxDefault.Items.Assign(reItems.Lines); | 
|---|
|  | 484 | idx := -1; | 
|---|
|  | 485 | if(assigned(FFld)) and reItems.Visible and cbxDefault.Visible then | 
|---|
|  | 486 | begin | 
|---|
|  | 487 | ChangeSizes := TRUE; | 
|---|
|  | 488 | for i := 0 to reItems.Lines.Count-1 do | 
|---|
|  | 489 | begin | 
|---|
|  | 490 | Siz := length(StripEmbedded(reItems.Lines[i])); | 
|---|
|  | 491 | if Max1 < Siz then | 
|---|
|  | 492 | Max1 := Siz; | 
|---|
|  | 493 | if(idx < 0) and (FFld.ItemDefault = reItems.Lines[i]) then | 
|---|
|  | 494 | idx := i; | 
|---|
|  | 495 | end; | 
|---|
|  | 496 | Max2 := Max1; | 
|---|
|  | 497 | if Max1 > MaxTFEdtLen then | 
|---|
|  | 498 | Max1 := MaxTFEdtLen; | 
|---|
|  | 499 | end; | 
|---|
|  | 500 | cbxDefault.ItemIndex := idx; | 
|---|
|  | 501 | finally | 
|---|
|  | 502 | FUpdating := FALSE; | 
|---|
|  | 503 | end; | 
|---|
|  | 504 | if ChangeSizes and DoUpdate then | 
|---|
|  | 505 | begin | 
|---|
|  | 506 | udLen.Position := Max1; | 
|---|
|  | 507 | if (not udTextLen.Enabled) or | 
|---|
|  | 508 | ((udTextLen.Position > 0) and (udTextLen.Position < Max2)) then | 
|---|
|  | 509 | udTextLen.Position := Max2; | 
|---|
|  | 510 | end; | 
|---|
|  | 511 | end; | 
|---|
|  | 512 |  | 
|---|
|  | 513 | procedure TfrmTemplateFieldEditor.cbxObjsNeedData(Sender: TObject; | 
|---|
|  | 514 | const StartFrom: String; Direction, InsertAt: Integer); | 
|---|
|  | 515 | var | 
|---|
|  | 516 | tmp: TORStringList; | 
|---|
|  | 517 | i, idx: integer; | 
|---|
|  | 518 |  | 
|---|
|  | 519 | begin | 
|---|
|  | 520 | tmp := TORStringList.Create; | 
|---|
|  | 521 | try | 
|---|
|  | 522 | tmp.Assign(SubSetOfTemplateFields(StartFrom, Direction)); | 
|---|
|  | 523 | for i := 0 to FDeleted.Count-1 do | 
|---|
|  | 524 | begin | 
|---|
|  | 525 | idx := tmp.IndexOfPiece(Piece(FDeleted[i],U,1), U, 1); | 
|---|
|  | 526 | if(idx >= 0) then | 
|---|
|  | 527 | tmp.delete(idx); | 
|---|
|  | 528 | end; | 
|---|
|  | 529 | ConvertCodes2Text(tmp, TRUE); | 
|---|
|  | 530 | cbxObjs.ForDataUse(tmp); | 
|---|
|  | 531 | finally | 
|---|
|  | 532 | tmp.Free; | 
|---|
|  | 533 | end; | 
|---|
|  | 534 | end; | 
|---|
|  | 535 |  | 
|---|
|  | 536 | procedure TfrmTemplateFieldEditor.FormCreate(Sender: TObject); | 
|---|
|  | 537 | var | 
|---|
|  | 538 | i: integer; | 
|---|
|  | 539 | Child: TControl; | 
|---|
|  | 540 | Overage: integer; | 
|---|
|  | 541 | begin | 
|---|
|  | 542 | FDeleted := TORStringList.Create; | 
|---|
|  | 543 | FHideSynonyms := TRUE; | 
|---|
|  | 544 | cbxObjs.InitLongList(''); | 
|---|
|  | 545 | cbxObjs.ItemHeight := 15; | 
|---|
|  | 546 | UpdateControls; | 
|---|
|  | 547 | ResizeAnchoredFormToFont(self); | 
|---|
|  | 548 | //ResizeAnchoredFormToFont does the pnlObjInfo panel wrong.  So we fix it here. | 
|---|
|  | 549 | gbMisc.Top := pnlObjInfo.ClientHeight - gbMisc.Height - 5; | 
|---|
|  | 550 | gbIndent.Top := gbMisc.Top; | 
|---|
|  | 551 | edtLMText.Top := gbMisc.Top - edtLMText.Height - 2; | 
|---|
|  | 552 | lblLM.Top := edtLMText.Top + 5; | 
|---|
|  | 553 | pnlSwap.Height := lblLM.Top - pnlSwap.Top; | 
|---|
|  | 554 | Overage := edtName.Left + edtName.Width - pnlObjInfo.ClientWidth - 4; | 
|---|
|  | 555 | for i := 0 to pnlObjInfo.ControlCount-1 do begin | 
|---|
|  | 556 | Child := pnlObjInfo.Controls[i]; | 
|---|
|  | 557 | if (akRight in Child.Anchors) then begin | 
|---|
|  | 558 | if (akLeft in Child.Anchors) then | 
|---|
|  | 559 | Child.Width := Child.Width - Overage | 
|---|
|  | 560 | else | 
|---|
|  | 561 | Child.Left := Child.Left - Overage; | 
|---|
|  | 562 | end; | 
|---|
|  | 563 | end; | 
|---|
|  | 564 | end; | 
|---|
|  | 565 |  | 
|---|
|  | 566 | procedure TfrmTemplateFieldEditor.cbxObjsChange(Sender: TObject); | 
|---|
|  | 567 | begin | 
|---|
|  | 568 | if(cbxObjs.ItemIEN <> 0) then | 
|---|
|  | 569 | SetFld(GetTemplateField(cbxObjs.ItemID, TRUE)) | 
|---|
|  | 570 | else | 
|---|
|  | 571 | SetFld(nil); | 
|---|
|  | 572 | UpdateControls; | 
|---|
|  | 573 | end; | 
|---|
|  | 574 |  | 
|---|
|  | 575 | procedure TfrmTemplateFieldEditor.edtNameChange(Sender: TObject); | 
|---|
|  | 576 | var | 
|---|
|  | 577 | ok: boolean; | 
|---|
|  | 578 |  | 
|---|
|  | 579 | begin | 
|---|
|  | 580 | if(not FUpdating) and (assigned(FFld)) then | 
|---|
|  | 581 | begin | 
|---|
|  | 582 | if (not FFld.NameChanged) and (not FFld.NewField) then | 
|---|
|  | 583 | begin | 
|---|
|  | 584 | ok := InfoBox('*** WARNING ***' + CRLF + CRLF + | 
|---|
|  | 585 | //      'This template field has been saved, and may have been used in one or more' + CRLF +  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 586 | DKLangConstW('fTemplateFieldEditor_This_template_field_has_been_savedx_and_may_have_been_used_in_one_or_more') + CRLF + //kt added 8/8/2007 | 
|---|
|  | 587 | //      'boilerplates.  Boilerplates can be found in templates, titles, reasons for request' + CRLF +  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 588 | DKLangConstW('fTemplateFieldEditor_boilerplatesx__Boilerplates_can_be_found_in_templatesx_titlesx_reasons_for_request') + CRLF + //kt added 8/8/2007 | 
|---|
|  | 589 | //      'and reminder dialogs.  Renaming this template field will cause any boilerplates' + CRLF +  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 590 | DKLangConstW('fTemplateFieldEditor_and_reminder_dialogsx__Renaming_this_template_field_will_cause_any_boilerplates') + CRLF + //kt added 8/8/2007 | 
|---|
|  | 591 | //      'that use it to no longer function correctly.' + CRLF + CRLF +  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 592 | DKLangConstW('fTemplateFieldEditor_that_use_it_to_no_longer_function_correctlyx') + CRLF + CRLF + //kt added 8/8/2007 | 
|---|
|  | 593 | //      'Are you sure you want to rename the ' + FFld.FldName + ' template field?',  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 594 | DKLangConstW('fTemplateFieldEditor_Are_you_sure_you_want_to_rename_the')+' ' + FFld.FldName + DKLangConstW('fTemplateFieldEditor_template_fieldx'), //kt added 8/8/2007 | 
|---|
|  | 595 | //      'Warning', MB_YESNO or MB_ICONWARNING) = IDYES;  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 596 | DKLangConstW('fTemplateFieldEditor_Warning'), MB_YESNO or MB_ICONWARNING) = IDYES; //kt added 8/8/2007 | 
|---|
|  | 597 | if ok then | 
|---|
|  | 598 | //      InfoBox('Template field will be renamed when OK or Apply is pressed.', 'Information', MB_OK or MB_ICONINFORMATION)  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 599 | InfoBox(DKLangConstW('fTemplateFieldEditor_Template_field_will_be_renamed_when_OK_or_Apply_is_pressedx'), DKLangConstW('fTemplateFieldEditor_Information'), MB_OK or MB_ICONINFORMATION) //kt added 8/8/2007 | 
|---|
|  | 600 | else | 
|---|
|  | 601 | begin | 
|---|
|  | 602 | FUpdating := TRUE; | 
|---|
|  | 603 | try | 
|---|
|  | 604 | edtName.Text := FFld.FldName; | 
|---|
|  | 605 | finally | 
|---|
|  | 606 | FUpdating := FALSE; | 
|---|
|  | 607 | end; | 
|---|
|  | 608 | end; | 
|---|
|  | 609 | end | 
|---|
|  | 610 | else | 
|---|
|  | 611 | ok := TRUE; | 
|---|
|  | 612 | if ok then | 
|---|
|  | 613 | begin | 
|---|
|  | 614 | FFld.FldName := edtName.Text; | 
|---|
|  | 615 | edtName.Text := FFld.FldName; | 
|---|
|  | 616 | FChangesPending := TRUE; | 
|---|
|  | 617 | ResetListEntry; | 
|---|
|  | 618 | end; | 
|---|
|  | 619 | end; | 
|---|
|  | 620 | end; | 
|---|
|  | 621 |  | 
|---|
|  | 622 | procedure TfrmTemplateFieldEditor.cbxTypeChange(Sender: TObject); | 
|---|
|  | 623 | begin | 
|---|
|  | 624 | if(not FUpdating) and (assigned(FFld)) then | 
|---|
|  | 625 | begin | 
|---|
|  | 626 | if(cbxType.ItemIndex < 0) then | 
|---|
|  | 627 | begin | 
|---|
|  | 628 | FUpdating := TRUE; | 
|---|
|  | 629 | try | 
|---|
|  | 630 | cbxType.ItemIndex := 0; | 
|---|
|  | 631 | finally | 
|---|
|  | 632 | FUpdating := FALSE; | 
|---|
|  | 633 | end; | 
|---|
|  | 634 | end; | 
|---|
|  | 635 | FFld.FldType := TTemplateFieldType(cbxType.ItemIndex); | 
|---|
|  | 636 | end; | 
|---|
|  | 637 | EnableButtons; | 
|---|
|  | 638 | UpdateControls; | 
|---|
|  | 639 | end; | 
|---|
|  | 640 |  | 
|---|
|  | 641 | procedure TfrmTemplateFieldEditor.edtLenChange(Sender: TObject); | 
|---|
|  | 642 | var | 
|---|
|  | 643 | v: integer; | 
|---|
|  | 644 | ok: boolean; | 
|---|
|  | 645 |  | 
|---|
|  | 646 | begin | 
|---|
|  | 647 | EnsureText(edtLen, udLen); | 
|---|
|  | 648 | if((not FUpdating) and (assigned(FFld)) and (FFld.FldType in (EditLenTypes))) then | 
|---|
|  | 649 | begin | 
|---|
|  | 650 | EnsureText(edtLen, udLen); | 
|---|
|  | 651 | FFld.MaxLen := udLen.Position; | 
|---|
|  | 652 | udLen.Position := FFld.MaxLen; | 
|---|
|  | 653 | if edtDefault.Visible then | 
|---|
|  | 654 | begin | 
|---|
|  | 655 | edtDefault.MaxLength := FFld.MaxLen; | 
|---|
|  | 656 | edtDefault.Text := copy(edtDefault.Text,1,FFld.MaxLen); | 
|---|
|  | 657 | end; | 
|---|
|  | 658 | case FFLd.FldType of | 
|---|
|  | 659 | dftEditBox:  ok := TRUE; | 
|---|
|  | 660 | dftComboBox: ok := (udTextLen.Position > 0); | 
|---|
|  | 661 | else         ok := FALSE; | 
|---|
|  | 662 | end; | 
|---|
|  | 663 | if ok then | 
|---|
|  | 664 | begin | 
|---|
|  | 665 | v := udLen.Position; | 
|---|
|  | 666 | if udTextLen.Position < v then | 
|---|
|  | 667 | udTextLen.Position := v; | 
|---|
|  | 668 | end; | 
|---|
|  | 669 | end; | 
|---|
|  | 670 | end; | 
|---|
|  | 671 |  | 
|---|
|  | 672 | procedure TfrmTemplateFieldEditor.edtDefaultChange(Sender: TObject); | 
|---|
|  | 673 | begin | 
|---|
|  | 674 | if((not FUpdating) and (assigned(FFld)) and (FFld.FldType in EditDfltType2)) then | 
|---|
|  | 675 | begin | 
|---|
|  | 676 | FFld.EditDefault := TEdit(Sender).Text; | 
|---|
|  | 677 | TEdit(Sender).Text := FFld.EditDefault; | 
|---|
|  | 678 | end; | 
|---|
|  | 679 | end; | 
|---|
|  | 680 |  | 
|---|
|  | 681 | procedure TfrmTemplateFieldEditor.cbxDefaultChange(Sender: TObject); | 
|---|
|  | 682 | begin | 
|---|
|  | 683 | if((not FUpdating) and (assigned(FFld)) and (FFld.FldType in ItemDfltTypes)) then | 
|---|
|  | 684 | begin | 
|---|
|  | 685 | FFld.ItemDefault := cbxDefault.Text; | 
|---|
|  | 686 | SyncItems; | 
|---|
|  | 687 | end; | 
|---|
|  | 688 | end; | 
|---|
|  | 689 |  | 
|---|
|  | 690 | procedure TfrmTemplateFieldEditor.edtLMTextChange(Sender: TObject); | 
|---|
|  | 691 | begin | 
|---|
|  | 692 | if((not FUpdating) and (assigned(FFld))) then | 
|---|
|  | 693 | begin | 
|---|
|  | 694 | FFld.LMText := edtLMText.Text; | 
|---|
|  | 695 | edtLMText.Text := FFld.LMText; | 
|---|
|  | 696 | end; | 
|---|
|  | 697 | end; | 
|---|
|  | 698 |  | 
|---|
|  | 699 | procedure TfrmTemplateFieldEditor.cbActiveClick(Sender: TObject); | 
|---|
|  | 700 | begin | 
|---|
|  | 701 | if((not FUpdating) and (assigned(FFld))) then | 
|---|
|  | 702 | begin | 
|---|
|  | 703 | FFld.Inactive := cbActive.Checked; | 
|---|
|  | 704 | cbActive.Checked := FFld.Inactive; | 
|---|
|  | 705 | FChangesPending := TRUE; | 
|---|
|  | 706 | //ResetListEntry; | 
|---|
|  | 707 | end; | 
|---|
|  | 708 | end; | 
|---|
|  | 709 |  | 
|---|
|  | 710 | procedure TfrmTemplateFieldEditor.mnuNewClick(Sender: TObject); | 
|---|
|  | 711 | begin | 
|---|
|  | 712 | SetFld(TTemplateField.Create(nil)); | 
|---|
|  | 713 | if(assigned(FFld)) then | 
|---|
|  | 714 | begin | 
|---|
|  | 715 | FChangesPending := TRUE; | 
|---|
|  | 716 | if cbxObjs.ShortCount = 0 then | 
|---|
|  | 717 | begin | 
|---|
|  | 718 | cbxObjs.Items.Insert(0,LLS_LINE); | 
|---|
|  | 719 | cbxObjs.Items.Insert(1,''); | 
|---|
|  | 720 | end; | 
|---|
|  | 721 | if(assigned(CopyFld)) then | 
|---|
|  | 722 | FFld.Assign(CopyFld); | 
|---|
|  | 723 | cbxObjs.Items.Insert(0,FFld.ID + U + FFld.FldName); | 
|---|
|  | 724 | cbxObjs.SelectByID(FFld.ID); | 
|---|
|  | 725 | cbxObjsChange(nil); | 
|---|
|  | 726 | if(assigned(FFld)) then | 
|---|
|  | 727 | edtName.SetFocus; | 
|---|
|  | 728 | end | 
|---|
|  | 729 | else | 
|---|
|  | 730 | UpdateControls; | 
|---|
|  | 731 | end; | 
|---|
|  | 732 |  | 
|---|
|  | 733 | procedure TfrmTemplateFieldEditor.btnOKClick(Sender: TObject); | 
|---|
|  | 734 | begin | 
|---|
|  | 735 | SaveChanges; | 
|---|
|  | 736 | end; | 
|---|
|  | 737 |  | 
|---|
|  | 738 | procedure TfrmTemplateFieldEditor.btnApplyClick(Sender: TObject); | 
|---|
|  | 739 | var | 
|---|
|  | 740 | tmp: string; | 
|---|
|  | 741 | begin | 
|---|
|  | 742 | SaveChanges; | 
|---|
|  | 743 | cbxObjs.Clear; | 
|---|
|  | 744 | if assigned(FFld) then | 
|---|
|  | 745 | tmp := FFld.FldName | 
|---|
|  | 746 | else | 
|---|
|  | 747 | tmp := ''; | 
|---|
|  | 748 | cbxObjs.InitLongList(tmp); | 
|---|
|  | 749 | cbxObjs.ItemIndex := 0; | 
|---|
|  | 750 | cbxObjsChange(cbxObjs); | 
|---|
|  | 751 | end; | 
|---|
|  | 752 |  | 
|---|
|  | 753 | procedure TfrmTemplateFieldEditor.FormCloseQuery(Sender: TObject; | 
|---|
|  | 754 | var CanClose: Boolean); | 
|---|
|  | 755 | var | 
|---|
|  | 756 | ans: word; | 
|---|
|  | 757 |  | 
|---|
|  | 758 | begin | 
|---|
|  | 759 | if(AnyTemplateFieldsModified) then | 
|---|
|  | 760 | begin | 
|---|
|  | 761 | //  ans := InfoBox('Save Changes?', 'Confirmation', MB_YESNOCANCEL or MB_ICONQUESTION);  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 762 | ans := InfoBox(DKLangConstW('fTemplateFieldEditor_Save_Changesx'), DKLangConstW('fTemplateFieldEditor_Confirmation'), MB_YESNOCANCEL or MB_ICONQUESTION); //kt added 8/8/2007 | 
|---|
|  | 763 | if(ans = IDCANCEL) then | 
|---|
|  | 764 | CanClose := FALSE | 
|---|
|  | 765 | else | 
|---|
|  | 766 | if(ans = IDYES) then | 
|---|
|  | 767 | CanClose := SaveChanges; | 
|---|
|  | 768 | end; | 
|---|
|  | 769 | end; | 
|---|
|  | 770 |  | 
|---|
|  | 771 | procedure TfrmTemplateFieldEditor.btnCancelClick(Sender: TObject); | 
|---|
|  | 772 | var | 
|---|
|  | 773 | i: integer; | 
|---|
|  | 774 |  | 
|---|
|  | 775 | begin | 
|---|
|  | 776 | for i := 0 to FDeleted.Count-1 do | 
|---|
|  | 777 | UnlockTemplateField(Piece(FDeleted[i],U,1)); | 
|---|
|  | 778 | FDeleted.Clear; | 
|---|
|  | 779 | ClearModifiedTemplateFields; | 
|---|
|  | 780 | end; | 
|---|
|  | 781 |  | 
|---|
|  | 782 | function TfrmTemplateFieldEditor.SaveChanges: boolean; | 
|---|
|  | 783 | var | 
|---|
|  | 784 | ans: word; | 
|---|
|  | 785 | Errors: string; | 
|---|
|  | 786 | i: integer; | 
|---|
|  | 787 |  | 
|---|
|  | 788 | begin | 
|---|
|  | 789 | for i := 0 to FDeleted.Count-1 do | 
|---|
|  | 790 | DeleteTemplateField(Piece(FDeleted[i],U,1)); | 
|---|
|  | 791 | FDeleted.Clear; | 
|---|
|  | 792 | Result := TRUE; | 
|---|
|  | 793 | Errors := SaveTemplateFieldErrors; | 
|---|
|  | 794 | if(Errors <> '') then | 
|---|
|  | 795 | begin | 
|---|
|  | 796 | //  ans := InfoBox(Errors + CRLF + CRLF + 'Cancel changes to these Template Fields?',  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 797 | ans := InfoBox(Errors + CRLF + CRLF + DKLangConstW('fTemplateFieldEditor_Cancel_changes_to_these_Template_Fieldsx'), //kt added 8/8/2007 | 
|---|
|  | 798 | //    'Confirmation', MB_YESNO or MB_ICONQUESTION);  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 799 | DKLangConstW('fTemplateFieldEditor_Confirmation'), MB_YESNO or MB_ICONQUESTION); //kt added 8/8/2007 | 
|---|
|  | 800 | if(ans = IDYES) then | 
|---|
|  | 801 | ClearModifiedTemplateFields | 
|---|
|  | 802 | else | 
|---|
|  | 803 | Result := FALSE; | 
|---|
|  | 804 | end; | 
|---|
|  | 805 | if(FChangesPending) then | 
|---|
|  | 806 | FReloadChanges := TRUE; | 
|---|
|  | 807 | end; | 
|---|
|  | 808 |  | 
|---|
|  | 809 | procedure TfrmTemplateFieldEditor.reItemsChange(Sender: TObject); | 
|---|
|  | 810 | begin | 
|---|
|  | 811 | if((not FUpdating) and (assigned(FFld)) and (FFld.FldType in FldItemTypes)) then | 
|---|
|  | 812 | begin | 
|---|
|  | 813 | FFld.Items := reItems.Lines.Text; | 
|---|
|  | 814 | SyncItems; | 
|---|
|  | 815 | end; | 
|---|
|  | 816 | end; | 
|---|
|  | 817 |  | 
|---|
|  | 818 | procedure TfrmTemplateFieldEditor.cbHideClick(Sender: TObject); | 
|---|
|  | 819 | begin | 
|---|
|  | 820 | SetHideSynonyms(cbHide.Checked); | 
|---|
|  | 821 | end; | 
|---|
|  | 822 |  | 
|---|
|  | 823 | procedure TfrmTemplateFieldEditor.edtNameExit(Sender: TObject); | 
|---|
|  | 824 | begin | 
|---|
|  | 825 | if (ActiveControl <> btnCancel) and (ActiveControl <> btnDelete) then | 
|---|
|  | 826 | VerifyName; | 
|---|
|  | 827 | end; | 
|---|
|  | 828 |  | 
|---|
|  | 829 | procedure TfrmTemplateFieldEditor.VerifyName; | 
|---|
|  | 830 | var | 
|---|
|  | 831 | bad: boolean; | 
|---|
|  | 832 |  | 
|---|
|  | 833 | begin | 
|---|
|  | 834 | if assigned(FFld) then | 
|---|
|  | 835 | begin | 
|---|
|  | 836 | if FDeleted.IndexOfPiece(FFld.FldName, U, 2) >= 0 then | 
|---|
|  | 837 | begin | 
|---|
|  | 838 | //    ShowMessage('Template field can not be named the same as a deleted' + CRLF +  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 839 | ShowMessage(DKLangConstW('fTemplateFieldEditor_Template_field_can_not_be_named_the_same_as_a_deleted') + CRLF + //kt added 8/8/2007 | 
|---|
|  | 840 | //                'field until OK or Apply has been pressed.');  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 841 | DKLangConstW('fTemplateFieldEditor_field_until_OK_or_Apply_has_been_pressedx')); //kt added 8/8/2007 | 
|---|
|  | 842 | bad := TRUE; | 
|---|
|  | 843 | end | 
|---|
|  | 844 | else | 
|---|
|  | 845 | bad := TemplateFieldNameProblem(FFld); | 
|---|
|  | 846 | if bad then | 
|---|
|  | 847 | edtName.SetFocus; | 
|---|
|  | 848 | end; | 
|---|
|  | 849 | end; | 
|---|
|  | 850 |  | 
|---|
|  | 851 | procedure TfrmTemplateFieldEditor.mnuCopyClick(Sender: TObject); | 
|---|
|  | 852 | begin | 
|---|
|  | 853 | if assigned(FFld) then | 
|---|
|  | 854 | begin | 
|---|
|  | 855 | CopyFld := FFld; | 
|---|
|  | 856 | try | 
|---|
|  | 857 | mnuNewClick(nil); | 
|---|
|  | 858 | finally | 
|---|
|  | 859 | CopyFld := nil; | 
|---|
|  | 860 | end; | 
|---|
|  | 861 | end; | 
|---|
|  | 862 | end; | 
|---|
|  | 863 |  | 
|---|
|  | 864 | procedure TfrmTemplateFieldEditor.SetFld(const Value: TTemplateField); | 
|---|
|  | 865 | begin | 
|---|
|  | 866 | FFld := Value; | 
|---|
|  | 867 | EnableButtons; | 
|---|
|  | 868 | end; | 
|---|
|  | 869 |  | 
|---|
|  | 870 | procedure TfrmTemplateFieldEditor.mnuDeleteClick(Sender: TObject); | 
|---|
|  | 871 | var | 
|---|
|  | 872 | idx: integer; | 
|---|
|  | 873 | ok: boolean; | 
|---|
|  | 874 | Answer: word; | 
|---|
|  | 875 | txt: string; | 
|---|
|  | 876 | btns: TMsgDlgButtons; | 
|---|
|  | 877 |  | 
|---|
|  | 878 | begin | 
|---|
|  | 879 | if assigned(FFld) then | 
|---|
|  | 880 | begin | 
|---|
|  | 881 | ok := (FFld.NewField); | 
|---|
|  | 882 | if not ok then | 
|---|
|  | 883 | begin | 
|---|
|  | 884 | btns := [mbYes, mbNo]; | 
|---|
|  | 885 | if FFld.Inactive then | 
|---|
|  | 886 | txt := '' | 
|---|
|  | 887 | else | 
|---|
|  | 888 | begin | 
|---|
|  | 889 | //      txt := '  Rather than deleting, you may want' + CRLF +  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 890 | txt := DKLangConstW('fTemplateFieldEditor_Rather_than_deletingx_you_may_want') + CRLF + //kt added 8/8/2007 | 
|---|
|  | 891 | //             'to inactivate this template field instead.  You may inactivate this template by' + CRLF +  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 892 | DKLangConstW('fTemplateFieldEditor_to_inactivate_this_template_field_insteadx__You_may_inactivate_this_template_by') + CRLF + //kt added 8/8/2007 | 
|---|
|  | 893 | //             'pressing the Ignore button now.';  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 894 | DKLangConstW('fTemplateFieldEditor_pressing_the_Ignore_button_nowx'); //kt added 8/8/2007 | 
|---|
|  | 895 | include(btns, mbIgnore); | 
|---|
|  | 896 | end; | 
|---|
|  | 897 | Answer := MessageDlg('*** WARNING ***' + CRLF + CRLF + | 
|---|
|  | 898 | //                  'This template field has been saved, and may have been used in one or more' + CRLF +  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 899 | DKLangConstW('fTemplateFieldEditor_This_template_field_has_been_savedx_and_may_have_been_used_in_one_or_more') + CRLF + //kt added 8/8/2007 | 
|---|
|  | 900 | //                  'boilerplates.  Boilerplates can be found in templates, titles, reasons for request' + CRLF +  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 901 | DKLangConstW('fTemplateFieldEditor_boilerplatesx__Boilerplates_can_be_found_in_templatesx_titlesx_reasons_for_request') + CRLF + //kt added 8/8/2007 | 
|---|
|  | 902 | //                  'and reminder dialogs.  Deleting this template field will cause any boilerplates' + CRLF +  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 903 | DKLangConstW('fTemplateFieldEditor_and_reminder_dialogsx__Deleting_this_template_field_will_cause_any_boilerplates') + CRLF + //kt added 8/8/2007 | 
|---|
|  | 904 | //                  'that use it to no longer function correctly.' + txt + CRLF + CRLF +  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 905 | DKLangConstW('fTemplateFieldEditor_that_use_it_to_no_longer_function_correctlyx') + txt + CRLF + CRLF + //kt added 8/8/2007 | 
|---|
|  | 906 | //                  'Are you sure you want to delete the ' + FFld.FldName + ' template field?',  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 907 | DKLangConstW('fTemplateFieldEditor_Are_you_sure_you_want_to_delete_the')+' ' + FFld.FldName + DKLangConstW('fTemplateFieldEditor_template_fieldx'), //kt added 8/8/2007 | 
|---|
|  | 908 | mtWarning, btns, 0); | 
|---|
|  | 909 | ok := (Answer = mrYes); | 
|---|
|  | 910 | if(Answer = mrIgnore) then | 
|---|
|  | 911 | cbActive.Checked := TRUE; | 
|---|
|  | 912 | end; | 
|---|
|  | 913 | if ok then | 
|---|
|  | 914 | begin | 
|---|
|  | 915 | if(FFld.NewField or FFld.CanModify) then | 
|---|
|  | 916 | begin | 
|---|
|  | 917 | if FFld.NewField then | 
|---|
|  | 918 | begin | 
|---|
|  | 919 | idx := cbxObjs.ItemIndex; | 
|---|
|  | 920 | cbxObjs.ItemIndex := -1; | 
|---|
|  | 921 | cbxObjs.Items.Delete(idx); | 
|---|
|  | 922 | if cbxObjs.Items[0] = LLS_LINE then | 
|---|
|  | 923 | begin | 
|---|
|  | 924 | cbxObjs.Items.Delete(1); | 
|---|
|  | 925 | cbxObjs.Items.Delete(0); | 
|---|
|  | 926 | end; | 
|---|
|  | 927 | end | 
|---|
|  | 928 | else | 
|---|
|  | 929 | begin | 
|---|
|  | 930 | FDeleted.Add(FFld.ID + U + FFld.FldName); | 
|---|
|  | 931 | cbxObjs.ItemIndex := -1; | 
|---|
|  | 932 | end; | 
|---|
|  | 933 | end; | 
|---|
|  | 934 | FFld.Free; | 
|---|
|  | 935 | SetFld(nil); | 
|---|
|  | 936 | UpdateControls; | 
|---|
|  | 937 | cbxObjs.InitLongList(''); | 
|---|
|  | 938 | FChangesPending := TRUE; | 
|---|
|  | 939 | end; | 
|---|
|  | 940 | end; | 
|---|
|  | 941 | end; | 
|---|
|  | 942 |  | 
|---|
|  | 943 | procedure TfrmTemplateFieldEditor.ResetListEntry; | 
|---|
|  | 944 | var | 
|---|
|  | 945 | txt: string; | 
|---|
|  | 946 |  | 
|---|
|  | 947 | begin | 
|---|
|  | 948 | if(assigned(FFld) and FFld.NewField and (cbxObjs.ItemIndex >= 0)) then | 
|---|
|  | 949 | begin | 
|---|
|  | 950 | txt := FFld.ID + U + FFld.FldName; | 
|---|
|  | 951 | //if(FFld.Inactive) then | 
|---|
|  | 952 | //txt := txt + ' <Inactive>'; | 
|---|
|  | 953 | cbxObjs.Items[cbxObjs.ItemIndex] := txt; | 
|---|
|  | 954 | cbxObjs.ItemIndex := cbxObjs.ItemIndex; | 
|---|
|  | 955 | end; | 
|---|
|  | 956 | end; | 
|---|
|  | 957 |  | 
|---|
|  | 958 | procedure TfrmTemplateFieldEditor.btnPreviewClick(Sender: TObject); | 
|---|
|  | 959 | var | 
|---|
|  | 960 | TmpSL: TStringList; | 
|---|
|  | 961 |  | 
|---|
|  | 962 | begin | 
|---|
|  | 963 | if(assigned(FFld)) then | 
|---|
|  | 964 | begin | 
|---|
|  | 965 | TmpSL := TStringList.Create; | 
|---|
|  | 966 | try | 
|---|
|  | 967 | TmpSL.Add(TemplateFieldBeginSignature + FFld.FldName + TemplateFieldEndSignature); | 
|---|
|  | 968 | //    CheckBoilerplate4Fields(TmpSL, 'Preview Template Field: ' + FFld.FldName, TRUE);  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 969 | CheckBoilerplate4Fields(TmpSL, DKLangConstW('fTemplateFieldEditor_Preview_Template_Fieldx') + FFld.FldName, TRUE); //kt added 8/8/2007 | 
|---|
|  | 970 | finally | 
|---|
|  | 971 | TmpSL.Free; | 
|---|
|  | 972 | end; | 
|---|
|  | 973 | end; | 
|---|
|  | 974 | end; | 
|---|
|  | 975 |  | 
|---|
|  | 976 | procedure TfrmTemplateFieldEditor.EnableButtons; | 
|---|
|  | 977 | begin | 
|---|
|  | 978 | btnCopy.Enabled := assigned(FFld); | 
|---|
|  | 979 | mnuCopy.Enabled := btnCopy.Enabled; | 
|---|
|  | 980 | btnDelete.Enabled := btnCopy.Enabled; // (assigned(FFld) and FFld.NewField); | 
|---|
|  | 981 | mnuDelete.Enabled := btnDelete.Enabled; | 
|---|
|  | 982 | btnPreview.Enabled := assigned(FFld) and (FFld.FldType <> dftUnknown); | 
|---|
|  | 983 | mnuPreview.Enabled := btnPreview.Enabled; | 
|---|
|  | 984 | end; | 
|---|
|  | 985 |  | 
|---|
|  | 986 | procedure TfrmTemplateFieldEditor.mnuActionClick(Sender: TObject); | 
|---|
|  | 987 | begin | 
|---|
|  | 988 | EnableButtons; | 
|---|
|  | 989 | end; | 
|---|
|  | 990 |  | 
|---|
|  | 991 | procedure TfrmTemplateFieldEditor.cbRequiredClick(Sender: TObject); | 
|---|
|  | 992 | begin | 
|---|
|  | 993 | if((not FUpdating) and (assigned(FFld))) then | 
|---|
|  | 994 | begin | 
|---|
|  | 995 | FFld.Required := cbRequired.Checked; | 
|---|
|  | 996 | cbRequired.Checked := FFld.Required; | 
|---|
|  | 997 | end; | 
|---|
|  | 998 | end; | 
|---|
|  | 999 |  | 
|---|
|  | 1000 | procedure TfrmTemplateFieldEditor.pnlObjsResize(Sender: TObject); | 
|---|
|  | 1001 | begin | 
|---|
|  | 1002 | btnPreview.Left := pnlRight.Left; | 
|---|
|  | 1003 | end; | 
|---|
|  | 1004 |  | 
|---|
|  | 1005 | procedure TfrmTemplateFieldEditor.FormDestroy(Sender: TObject); | 
|---|
|  | 1006 | begin | 
|---|
|  | 1007 | FDeleted.Free; | 
|---|
|  | 1008 | if(assigned(frmTemplateFields)) then begin | 
|---|
|  | 1009 | frmTemplateFields.FRee; | 
|---|
|  | 1010 | frmTemplateFields := nil; | 
|---|
|  | 1011 | end; {if} | 
|---|
|  | 1012 |  | 
|---|
|  | 1013 | end; | 
|---|
|  | 1014 |  | 
|---|
|  | 1015 | procedure TfrmTemplateFieldEditor.SetHideSynonyms(const Value: boolean); | 
|---|
|  | 1016 | begin | 
|---|
|  | 1017 | FHideSynonyms := Value; | 
|---|
|  | 1018 | cbxObjs.HideSynonyms := FALSE; // Refresh Display | 
|---|
|  | 1019 | cbxObjs.HideSynonyms := TRUE; | 
|---|
|  | 1020 | end; | 
|---|
|  | 1021 |  | 
|---|
|  | 1022 | procedure TfrmTemplateFieldEditor.cbxObjsSynonymCheck(Sender: TObject; | 
|---|
|  | 1023 | const Text: String; var IsSynonym: Boolean); | 
|---|
|  | 1024 | begin | 
|---|
|  | 1025 | if not FHideSynonyms then | 
|---|
|  | 1026 | IsSynonym := FALSE; | 
|---|
|  | 1027 | if(FDeleted.Count > 0) and (FDeleted.IndexOfPiece(Text,U,2) >= 0) then | 
|---|
|  | 1028 | IsSynonym := TRUE; | 
|---|
|  | 1029 | end; | 
|---|
|  | 1030 |  | 
|---|
|  | 1031 | procedure TfrmTemplateFieldEditor.popTextPopup(Sender: TObject); | 
|---|
|  | 1032 | var | 
|---|
|  | 1033 | HasText, CanEdit, isre: boolean; | 
|---|
|  | 1034 | ce: TCustomEdit; | 
|---|
|  | 1035 | ShowTempField: boolean; | 
|---|
|  | 1036 |  | 
|---|
|  | 1037 | begin | 
|---|
|  | 1038 | ce := GetPopupControl; | 
|---|
|  | 1039 | if assigned(ce) then | 
|---|
|  | 1040 | begin | 
|---|
|  | 1041 | isre := (ce is TRichEdit); | 
|---|
|  | 1042 | CanEdit := (not TORExposedCustomEdit(ce).ReadOnly); | 
|---|
|  | 1043 | mnuBPUndo.Enabled := (CanEdit and (ce.Perform(EM_CANUNDO, 0, 0) <> 0)); | 
|---|
|  | 1044 | if isre then | 
|---|
|  | 1045 | HasText := (TRichEdit(ce).Lines.Count > 0) | 
|---|
|  | 1046 | else | 
|---|
|  | 1047 | HasText := (Text <> ''); | 
|---|
|  | 1048 | mnuBPSelectAll.Enabled := HasText; | 
|---|
|  | 1049 | mnuBPCopy.Enabled := HasText and (ce.SelLength > 0); | 
|---|
|  | 1050 | mnuBPPaste.Enabled := (CanEdit and Clipboard.HasFormat(CF_TEXT)); | 
|---|
|  | 1051 | mnuBPCut.Enabled := (CanEdit and HasText and (ce.SelLength > 0)); | 
|---|
|  | 1052 | ShowTempField := FALSE; | 
|---|
|  | 1053 | if CanEdit then | 
|---|
|  | 1054 | if (not assigned(frmTemplateFields)) or | 
|---|
|  | 1055 | (assigned(frmTemplateFields) and not frmTemplateFields.Visible) then | 
|---|
|  | 1056 | if (ce = reItems) or | 
|---|
|  | 1057 | (ce = edtDefault) then | 
|---|
|  | 1058 | ShowTempField := TRUE; | 
|---|
|  | 1059 | mnuInsertTemplateField.Enabled := ShowTempField; | 
|---|
|  | 1060 | end | 
|---|
|  | 1061 | else | 
|---|
|  | 1062 | begin | 
|---|
|  | 1063 | isre := FALSE; | 
|---|
|  | 1064 | HasText := FALSE; | 
|---|
|  | 1065 | CanEdit := FALSE; | 
|---|
|  | 1066 | mnuBPPaste.Enabled := FALSE; | 
|---|
|  | 1067 | mnuBPCopy.Enabled := FALSE; | 
|---|
|  | 1068 | mnuBPCut.Enabled := FALSE; | 
|---|
|  | 1069 | mnuBPSelectAll.Enabled := FALSE; | 
|---|
|  | 1070 | mnuBPUndo.Enabled := FALSE; | 
|---|
|  | 1071 | mnuInsertTemplateField.Enabled := FALSE; | 
|---|
|  | 1072 | end; | 
|---|
|  | 1073 |  | 
|---|
|  | 1074 | mnuBPSpellCheck.Visible := isre; | 
|---|
|  | 1075 | mnuBPCheckGrammar.Visible := isre; | 
|---|
|  | 1076 |  | 
|---|
|  | 1077 | if isre and HasText and CanEdit then | 
|---|
|  | 1078 | begin | 
|---|
|  | 1079 | mnuBPSpellCheck.Enabled   := SpellCheckAvailable; | 
|---|
|  | 1080 | mnuBPCheckGrammar.Enabled := SpellCheckAvailable; | 
|---|
|  | 1081 | end | 
|---|
|  | 1082 | else | 
|---|
|  | 1083 | begin | 
|---|
|  | 1084 | mnuBPSpellCheck.Enabled   := FALSE; | 
|---|
|  | 1085 | mnuBPCheckGrammar.Enabled := FALSE; | 
|---|
|  | 1086 | end; | 
|---|
|  | 1087 | end; | 
|---|
|  | 1088 |  | 
|---|
|  | 1089 | function TfrmTemplateFieldEditor.GetPopupControl: TCustomEdit; | 
|---|
|  | 1090 | begin | 
|---|
|  | 1091 | if assigned(popText.PopupComponent) and (popText.PopupComponent is TCustomEdit) then | 
|---|
|  | 1092 | Result := TCustomEdit(popText.PopupComponent) | 
|---|
|  | 1093 | else | 
|---|
|  | 1094 | Result := nil; | 
|---|
|  | 1095 | end; | 
|---|
|  | 1096 |  | 
|---|
|  | 1097 | procedure TfrmTemplateFieldEditor.mnuBPUndoClick(Sender: TObject); | 
|---|
|  | 1098 | var | 
|---|
|  | 1099 | ce: TCustomEdit; | 
|---|
|  | 1100 |  | 
|---|
|  | 1101 | begin | 
|---|
|  | 1102 | ce := GetPopupControl; | 
|---|
|  | 1103 | if assigned(ce) then | 
|---|
|  | 1104 | ce.Perform(EM_UNDO, 0, 0); | 
|---|
|  | 1105 | end; | 
|---|
|  | 1106 |  | 
|---|
|  | 1107 | procedure TfrmTemplateFieldEditor.mnuBPCutClick(Sender: TObject); | 
|---|
|  | 1108 | var | 
|---|
|  | 1109 | ce: TCustomEdit; | 
|---|
|  | 1110 |  | 
|---|
|  | 1111 | begin | 
|---|
|  | 1112 | ce := GetPopupControl; | 
|---|
|  | 1113 | if assigned(ce) then | 
|---|
|  | 1114 | ce.CutToClipboard; | 
|---|
|  | 1115 | end; | 
|---|
|  | 1116 |  | 
|---|
|  | 1117 | procedure TfrmTemplateFieldEditor.mnuBPCopyClick(Sender: TObject); | 
|---|
|  | 1118 | var | 
|---|
|  | 1119 | ce: TCustomEdit; | 
|---|
|  | 1120 |  | 
|---|
|  | 1121 | begin | 
|---|
|  | 1122 | ce := GetPopupControl; | 
|---|
|  | 1123 | if assigned(ce) then | 
|---|
|  | 1124 | ce.CopyToClipboard; | 
|---|
|  | 1125 | end; | 
|---|
|  | 1126 |  | 
|---|
|  | 1127 | procedure TfrmTemplateFieldEditor.mnuBPPasteClick(Sender: TObject); | 
|---|
|  | 1128 | var | 
|---|
|  | 1129 | ce: TCustomEdit; | 
|---|
|  | 1130 |  | 
|---|
|  | 1131 | begin | 
|---|
|  | 1132 | ce := GetPopupControl; | 
|---|
|  | 1133 | if assigned(ce) then | 
|---|
|  | 1134 | ce.SelText := Clipboard.AsText; | 
|---|
|  | 1135 | end; | 
|---|
|  | 1136 |  | 
|---|
|  | 1137 | procedure TfrmTemplateFieldEditor.mnuBPSelectAllClick(Sender: TObject); | 
|---|
|  | 1138 | var | 
|---|
|  | 1139 | ce: TCustomEdit; | 
|---|
|  | 1140 |  | 
|---|
|  | 1141 | begin | 
|---|
|  | 1142 | ce := GetPopupControl; | 
|---|
|  | 1143 | if assigned(ce) then | 
|---|
|  | 1144 | ce.SelectAll; | 
|---|
|  | 1145 | end; | 
|---|
|  | 1146 |  | 
|---|
|  | 1147 | procedure TfrmTemplateFieldEditor.mnuBPCheckGrammarClick(Sender: TObject); | 
|---|
|  | 1148 | var | 
|---|
|  | 1149 | ce: TCustomEdit; | 
|---|
|  | 1150 |  | 
|---|
|  | 1151 | begin | 
|---|
|  | 1152 | ce := GetPopupControl; | 
|---|
|  | 1153 | if(assigned(ce) and (ce is TRichEdit)) then | 
|---|
|  | 1154 | GrammarCheckForControl(TRichEdit(ce)); | 
|---|
|  | 1155 | end; | 
|---|
|  | 1156 |  | 
|---|
|  | 1157 | procedure TfrmTemplateFieldEditor.mnuBPSpellCheckClick(Sender: TObject); | 
|---|
|  | 1158 | var | 
|---|
|  | 1159 | ce: TCustomEdit; | 
|---|
|  | 1160 |  | 
|---|
|  | 1161 | begin | 
|---|
|  | 1162 | ce := GetPopupControl; | 
|---|
|  | 1163 | if(assigned(ce) and (ce is TRichEdit)) then | 
|---|
|  | 1164 | SpellCheckForControl(TRichEdit(ce)); | 
|---|
|  | 1165 | end; | 
|---|
|  | 1166 |  | 
|---|
|  | 1167 | procedure TfrmTemplateFieldEditor.cbSepLinesClick(Sender: TObject); | 
|---|
|  | 1168 | begin | 
|---|
|  | 1169 | if((not FUpdating) and (assigned(FFld))) then | 
|---|
|  | 1170 | begin | 
|---|
|  | 1171 | FFld.SepLines := cbSepLines.Checked; | 
|---|
|  | 1172 | cbSepLines.Checked := FFld.SepLines; | 
|---|
|  | 1173 | end; | 
|---|
|  | 1174 | end; | 
|---|
|  | 1175 |  | 
|---|
|  | 1176 | procedure TfrmTemplateFieldEditor.edtpopControlEnter(Sender: TObject); | 
|---|
|  | 1177 | begin | 
|---|
|  | 1178 | popText.PopupComponent := TComponent(Sender); | 
|---|
|  | 1179 | if assigned(frmTemplateFields) then | 
|---|
|  | 1180 | begin | 
|---|
|  | 1181 | if ((Sender = reItems) or (Sender = edtDefault)) then | 
|---|
|  | 1182 | begin | 
|---|
|  | 1183 | frmTemplateFields.btnInsert.Enabled := TRUE; | 
|---|
|  | 1184 | if Sender = reItems then | 
|---|
|  | 1185 | frmTemplateFields.re := reItems | 
|---|
|  | 1186 | else | 
|---|
|  | 1187 | frmTemplateFields.re := edtDefault; | 
|---|
|  | 1188 | end | 
|---|
|  | 1189 | else | 
|---|
|  | 1190 | frmTemplateFields.btnInsert.Enabled := FALSE; | 
|---|
|  | 1191 | end; | 
|---|
|  | 1192 | end; | 
|---|
|  | 1193 |  | 
|---|
|  | 1194 | procedure TfrmTemplateFieldEditor.cbxObjsKeyDown(Sender: TObject; | 
|---|
|  | 1195 | var Key: Word; Shift: TShiftState); | 
|---|
|  | 1196 | begin | 
|---|
|  | 1197 | if(Key = VK_DELETE) and btnDelete.Enabled then | 
|---|
|  | 1198 | mnuDeleteClick(btnDelete); | 
|---|
|  | 1199 | end; | 
|---|
|  | 1200 |  | 
|---|
|  | 1201 | procedure TfrmTemplateFieldEditor.edtTextLenChange(Sender: TObject); | 
|---|
|  | 1202 | var | 
|---|
|  | 1203 | v: integer; | 
|---|
|  | 1204 |  | 
|---|
|  | 1205 | begin | 
|---|
|  | 1206 | EnsureText(edtTextLen, udTextLen); | 
|---|
|  | 1207 | if((not FUpdating) and (assigned(FFld)) and (FFld.FldType in EditLenTypes)) then | 
|---|
|  | 1208 | begin | 
|---|
|  | 1209 | FFld.TextLen := udTextLen.Position; | 
|---|
|  | 1210 | udTextLen.Position := FFld.TextLen; | 
|---|
|  | 1211 | if FFld.FldType = dftEditBox then | 
|---|
|  | 1212 | begin | 
|---|
|  | 1213 | v := udTextLen.Position; | 
|---|
|  | 1214 | if udLen.Position > v then | 
|---|
|  | 1215 | udLen.Position := v; | 
|---|
|  | 1216 | end; | 
|---|
|  | 1217 | end; | 
|---|
|  | 1218 | end; | 
|---|
|  | 1219 |  | 
|---|
|  | 1220 | procedure TfrmTemplateFieldEditor.edtDefNumChange(Sender: TObject); | 
|---|
|  | 1221 | var | 
|---|
|  | 1222 | v: integer; | 
|---|
|  | 1223 |  | 
|---|
|  | 1224 | begin | 
|---|
|  | 1225 | EnsureText(edtDefNum, udDefNum); | 
|---|
|  | 1226 | if((not FUpdating) and (assigned(FFld)) and (FFld.FldType = dftNumber)) then | 
|---|
|  | 1227 | begin | 
|---|
|  | 1228 | FFld.EditDefault := IntToStr(udDefNum.Position); | 
|---|
|  | 1229 | udDefNum.Position := StrToIntDef(FFld.EditDefault, 0); | 
|---|
|  | 1230 | v := udDefNum.Position; | 
|---|
|  | 1231 | if udMinVal.Position > v then | 
|---|
|  | 1232 | udMinVal.Position := v; | 
|---|
|  | 1233 | if udMaxVal.Position < v then | 
|---|
|  | 1234 | udMaxVal.Position := v; | 
|---|
|  | 1235 | end; | 
|---|
|  | 1236 | end; | 
|---|
|  | 1237 |  | 
|---|
|  | 1238 | procedure TfrmTemplateFieldEditor.edtMinValChange(Sender: TObject); | 
|---|
|  | 1239 | var | 
|---|
|  | 1240 | v: integer; | 
|---|
|  | 1241 |  | 
|---|
|  | 1242 | begin | 
|---|
|  | 1243 | EnsureText(edtMinVal, udMinVal); | 
|---|
|  | 1244 | if((not FUpdating) and (assigned(FFld)) and (FFld.FldType = dftNumber)) then | 
|---|
|  | 1245 | begin | 
|---|
|  | 1246 | FFld.MinVal := udMinVal.Position; | 
|---|
|  | 1247 | udMinVal.Position := FFld.MinVal; | 
|---|
|  | 1248 | v := udMinVal.Position; | 
|---|
|  | 1249 | if udDefNum.Position < v then | 
|---|
|  | 1250 | udDefNum.Position := v; | 
|---|
|  | 1251 | if udMaxVal.Position < v then | 
|---|
|  | 1252 | udMaxVal.Position := v; | 
|---|
|  | 1253 | end; | 
|---|
|  | 1254 | end; | 
|---|
|  | 1255 |  | 
|---|
|  | 1256 | procedure TfrmTemplateFieldEditor.edtMaxValChange(Sender: TObject); | 
|---|
|  | 1257 | var | 
|---|
|  | 1258 | v: integer; | 
|---|
|  | 1259 |  | 
|---|
|  | 1260 | begin | 
|---|
|  | 1261 | EnsureText(edtMaxVal, udMaxVal); | 
|---|
|  | 1262 | if((not FUpdating) and (assigned(FFld)) and (FFld.FldType = dftNumber)) then | 
|---|
|  | 1263 | begin | 
|---|
|  | 1264 | FFld.MaxVal := udMaxVal.Position; | 
|---|
|  | 1265 | udMaxVal.Position := FFld.MaxVal; | 
|---|
|  | 1266 | v := udMaxVal.Position; | 
|---|
|  | 1267 | if udDefNum.Position > v then | 
|---|
|  | 1268 | udDefNum.Position := v; | 
|---|
|  | 1269 | if udMinVal.Position > v then | 
|---|
|  | 1270 | udMinVal.Position := v; | 
|---|
|  | 1271 | end; | 
|---|
|  | 1272 | end; | 
|---|
|  | 1273 |  | 
|---|
|  | 1274 | procedure TfrmTemplateFieldEditor.edtIncChange(Sender: TObject); | 
|---|
|  | 1275 | begin | 
|---|
|  | 1276 | EnsureText(edtInc, udInc); | 
|---|
|  | 1277 | if((not FUpdating) and (assigned(FFld)) and (FFld.FldType = dftNumber)) then | 
|---|
|  | 1278 | begin | 
|---|
|  | 1279 | FFld.Increment := udInc.Position; | 
|---|
|  | 1280 | udInc.Position := FFld.Increment; | 
|---|
|  | 1281 | end; | 
|---|
|  | 1282 | end; | 
|---|
|  | 1283 |  | 
|---|
|  | 1284 | procedure TfrmTemplateFieldEditor.edtURLChange(Sender: TObject); | 
|---|
|  | 1285 | begin | 
|---|
|  | 1286 | if((not FUpdating) and (assigned(FFld)) and (FFld.FldType = dftHyperlink)) then | 
|---|
|  | 1287 | begin | 
|---|
|  | 1288 | FFld.URL := edtURL.Text; | 
|---|
|  | 1289 | edtURL.Text := FFld.URL; | 
|---|
|  | 1290 | end; | 
|---|
|  | 1291 | end; | 
|---|
|  | 1292 |  | 
|---|
|  | 1293 | procedure TfrmTemplateFieldEditor.edtPadChange(Sender: TObject); | 
|---|
|  | 1294 | begin | 
|---|
|  | 1295 | EnsureText(edtPad, udPad); | 
|---|
|  | 1296 | if((not FUpdating) and (assigned(FFld))) then | 
|---|
|  | 1297 | begin | 
|---|
|  | 1298 | FFld.Pad := udPad.Position; | 
|---|
|  | 1299 | udPad.Position := FFld.Pad; | 
|---|
|  | 1300 | end; | 
|---|
|  | 1301 | end; | 
|---|
|  | 1302 |  | 
|---|
|  | 1303 | procedure TfrmTemplateFieldEditor.edtIndentChange(Sender: TObject); | 
|---|
|  | 1304 | begin | 
|---|
|  | 1305 | EnsureText(edtIndent, udIndent); | 
|---|
|  | 1306 | if((not FUpdating) and (assigned(FFld))) then | 
|---|
|  | 1307 | begin | 
|---|
|  | 1308 | FFld.Indent := udIndent.Position; | 
|---|
|  | 1309 | udIndent.Position := FFld.Indent; | 
|---|
|  | 1310 | end; | 
|---|
|  | 1311 | end; | 
|---|
|  | 1312 |  | 
|---|
|  | 1313 | procedure TfrmTemplateFieldEditor.reNotesChange(Sender: TObject); | 
|---|
|  | 1314 | begin | 
|---|
|  | 1315 | if((not FUpdating) and (assigned(FFld)) and FFld.CanModify) then | 
|---|
|  | 1316 | FFld.Notes := reNotes.Lines.Text; | 
|---|
|  | 1317 | end; | 
|---|
|  | 1318 |  | 
|---|
|  | 1319 | procedure TfrmTemplateFieldEditor.cbxDateTypeChange(Sender: TObject); | 
|---|
|  | 1320 | begin | 
|---|
|  | 1321 | if((not FUpdating) and (assigned(FFld)) and (FFld.FldType = dftDate)) then | 
|---|
|  | 1322 | begin | 
|---|
|  | 1323 | if cbxDateType.ItemIndex >= 0 then | 
|---|
|  | 1324 | FFld.DateType := TTmplFldDateType(cbxDateType.ItemIndex + 1) | 
|---|
|  | 1325 | else | 
|---|
|  | 1326 | FFld.DateType := dtDate; | 
|---|
|  | 1327 | cbxDateType.SelectByID(TemplateFieldDateCodes[FFld.DateType]); | 
|---|
|  | 1328 | end; | 
|---|
|  | 1329 |  | 
|---|
|  | 1330 | end; | 
|---|
|  | 1331 |  | 
|---|
|  | 1332 | procedure TfrmTemplateFieldEditor.cbExcludeClick(Sender: TObject); | 
|---|
|  | 1333 | begin | 
|---|
|  | 1334 | if((not FUpdating) and (assigned(FFld))) then | 
|---|
|  | 1335 | begin | 
|---|
|  | 1336 | FFld.SepLines := cbExclude.Checked; | 
|---|
|  | 1337 | cbExclude.Checked := FFld.SepLines; | 
|---|
|  | 1338 | UpdateControls; | 
|---|
|  | 1339 | end; | 
|---|
|  | 1340 | end; | 
|---|
|  | 1341 |  | 
|---|
|  | 1342 | procedure TfrmTemplateFieldEditor.FormResize(Sender: TObject); | 
|---|
|  | 1343 | begin | 
|---|
|  | 1344 | LimitEditWidth(reItems, 240); | 
|---|
|  | 1345 | LimitEditWidth(reNotes, MAX_ENTRY_WIDTH); | 
|---|
|  | 1346 | end; | 
|---|
|  | 1347 |  | 
|---|
|  | 1348 | procedure TfrmTemplateFieldEditor.reItemsResizeRequest(Sender: TObject; | 
|---|
|  | 1349 | Rect: TRect); | 
|---|
|  | 1350 | var | 
|---|
|  | 1351 | R: TRect; | 
|---|
|  | 1352 |  | 
|---|
|  | 1353 | begin | 
|---|
|  | 1354 | R := TRichEdit(Sender).ClientRect; | 
|---|
|  | 1355 | if (FLastRect.Right <> R.Right) or | 
|---|
|  | 1356 | (FLastRect.Bottom <> R.Bottom) or | 
|---|
|  | 1357 | (FLastRect.Left <> R.Left) or | 
|---|
|  | 1358 | (FLastRect.Top <> R.Top) then | 
|---|
|  | 1359 | begin | 
|---|
|  | 1360 | FLastRect := R; | 
|---|
|  | 1361 | FormResize(Self); | 
|---|
|  | 1362 | end; | 
|---|
|  | 1363 | end; | 
|---|
|  | 1364 |  | 
|---|
|  | 1365 | procedure TfrmTemplateFieldEditor.reItemsSelectionChange(Sender: TObject); | 
|---|
|  | 1366 | var | 
|---|
|  | 1367 | p: TPoint; | 
|---|
|  | 1368 |  | 
|---|
|  | 1369 | begin | 
|---|
|  | 1370 | if lblLine.Visible then | 
|---|
|  | 1371 | begin | 
|---|
|  | 1372 | p := reItems.CaretPos; | 
|---|
|  | 1373 | //  lblLine.Caption := 'Line: ' + inttostr(p.y + 1);  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 1374 | lblLine.Caption := DKLangConstW('fTemplateFieldEditor_Linex') + inttostr(p.y + 1); //kt added 8/8/2007 | 
|---|
|  | 1375 | //  lblCol.Caption  := 'Col: ' + inttostr(p.x + 1);  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 1376 | lblCol.Caption  := DKLangConstW('fTemplateFieldEditor_Colx') + inttostr(p.x + 1); //kt added 8/8/2007 | 
|---|
|  | 1377 | end; | 
|---|
|  | 1378 | end; | 
|---|
|  | 1379 |  | 
|---|
|  | 1380 | procedure TfrmTemplateFieldEditor.mnuInsertTemplateFieldClick(Sender: TObject); | 
|---|
|  | 1381 | var | 
|---|
|  | 1382 | iCon: TCustomEdit; | 
|---|
|  | 1383 | ShowButton: boolean; | 
|---|
|  | 1384 | begin | 
|---|
|  | 1385 | iCon := GetPopupControl; | 
|---|
|  | 1386 | if iCon <> nil then | 
|---|
|  | 1387 | begin | 
|---|
|  | 1388 | if iCon.Name <> ActiveControl.Name then | 
|---|
|  | 1389 | begin | 
|---|
|  | 1390 | ActiveControl := iCon; | 
|---|
|  | 1391 | iCon.SelStart := iCon.SelLength; | 
|---|
|  | 1392 | end; | 
|---|
|  | 1393 | if (not assigned(frmTemplateFields)) then | 
|---|
|  | 1394 | begin | 
|---|
|  | 1395 | frmTemplateFields := TfrmTemplateFields.Create(Self); | 
|---|
|  | 1396 | frmTemplateFields.Font := Font; | 
|---|
|  | 1397 | end; | 
|---|
|  | 1398 | ShowButton := False; | 
|---|
|  | 1399 | if iCon = reItems then | 
|---|
|  | 1400 | begin | 
|---|
|  | 1401 | frmTemplateFields.re := reItems; | 
|---|
|  | 1402 | ShowButton := TRUE; | 
|---|
|  | 1403 | end | 
|---|
|  | 1404 | else if iCon = edtDefault then | 
|---|
|  | 1405 | begin | 
|---|
|  | 1406 | frmTemplateFields.re := edtDefault; | 
|---|
|  | 1407 | ShowButton := TRUE; | 
|---|
|  | 1408 | end; | 
|---|
|  | 1409 | frmTemplateFields.btnInsert.Enabled := ShowButton; | 
|---|
|  | 1410 |  | 
|---|
|  | 1411 | frmTemplateFields.Show; | 
|---|
|  | 1412 | end | 
|---|
|  | 1413 |  | 
|---|
|  | 1414 | end; | 
|---|
|  | 1415 |  | 
|---|
|  | 1416 | procedure TfrmTemplateFieldEditor.ControlExit(Sender: TObject); | 
|---|
|  | 1417 | begin | 
|---|
|  | 1418 | if assigned(frmTemplateFields) then | 
|---|
|  | 1419 | frmTemplateFields.btnInsert.Enabled := FALSE; | 
|---|
|  | 1420 | end; | 
|---|
|  | 1421 |  | 
|---|
|  | 1422 | procedure TfrmTemplateFieldEditor.reNotesKeyUp(Sender: TObject; | 
|---|
|  | 1423 | var Key: Word; Shift: TShiftState); | 
|---|
|  | 1424 | begin | 
|---|
|  | 1425 | if (Key = VK_TAB) then | 
|---|
|  | 1426 | begin | 
|---|
|  | 1427 | if ssShift in Shift then | 
|---|
|  | 1428 | begin | 
|---|
|  | 1429 | FindNextControl(Sender as TWinControl, False, True, False).SetFocus; //previous control | 
|---|
|  | 1430 | Key := 0; | 
|---|
|  | 1431 | end | 
|---|
|  | 1432 | else if ssCtrl      in Shift then | 
|---|
|  | 1433 | begin | 
|---|
|  | 1434 | FindNextControl(Sender as TWinControl, True, True, False).SetFocus; //next control | 
|---|
|  | 1435 | Key := 0; | 
|---|
|  | 1436 | end; | 
|---|
|  | 1437 | end; | 
|---|
|  | 1438 | if (key = VK_ESCAPE) then begin | 
|---|
|  | 1439 | FindNextControl(Sender as TWinControl, False, True, False).SetFocus; //previous control | 
|---|
|  | 1440 | key := 0; | 
|---|
|  | 1441 | end; | 
|---|
|  | 1442 | end; | 
|---|
|  | 1443 |  | 
|---|
|  | 1444 | end. | 
|---|