object frmMain: TfrmMain Left = 306 Top = 126 Width = 599 Height = 274 Caption = 'JvValidators demo' Color = clBtnFace Constraints.MinHeight = 270 Constraints.MinWidth = 560 DefaultMonitor = dmDesktop Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Shell Dlg 2' Font.Style = [] OldCreateOrder = False Position = poDesktopCenter Scaled = False OnCreate = FormCreate PixelsPerInch = 96 TextHeight = 13 object Label1: TLabel Left = 16 Top = 16 Width = 155 Height = 13 Caption = 'This edit must have a(ny) value:' FocusControl = edRequired end object Label2: TLabel Left = 16 Top = 64 Width = 215 Height = 13 Caption = 'This edit must have more than 9 characters:' FocusControl = edRequired10Chars end object Label3: TLabel Left = 16 Top = 112 Width = 213 Height = 13 Caption = 'This edit must match the reg. expr."A.B.C.":' FocusControl = edRegExpr end object Label4: TLabel Left = 16 Top = 160 Width = 188 Height = 13 Caption = 'The value must be between 0 and 100:' FocusControl = edRange0to100 end object Label5: TLabel Left = 272 Top = 16 Width = 34 Height = 13 Caption = 'Result:' end object edRequired: TEdit Left = 16 Top = 32 Width = 217 Height = 21 TabOrder = 0 end object edRequired10Chars: TEdit Left = 16 Top = 80 Width = 217 Height = 21 TabOrder = 1 end object edRegExpr: TEdit Left = 16 Top = 128 Width = 217 Height = 21 TabOrder = 2 end object edRange0to100: TEdit Left = 16 Top = 176 Width = 217 Height = 21 TabOrder = 3 Text = '-1' end object udRange0to100: TUpDown Left = 233 Top = 176 Width = 15 Height = 21 Associate = edRange0to100 Min = -100 Max = 200 Position = -1 TabOrder = 4 Wrap = False end object btnCheck: TButton Left = 381 Top = 210 Width = 156 Height = 25 Anchors = [akLeft, akBottom] Caption = 'Use OnValidateFailed' TabOrder = 7 OnClick = btnCheckClick end object btnProviderCheck: TButton Left = 6 Top = 210 Width = 161 Height = 25 Anchors = [akLeft, akBottom] Caption = 'Use JvErrorIndicator' TabOrder = 5 OnClick = btnProviderCheckClick end object reResults: TRichEdit Left = 272 Top = 32 Width = 306 Height = 167 Cursor = crArrow TabStop = False Anchors = [akLeft, akTop, akRight, akBottom] Ctl3D = True Lines.Strings = ( 'This is a demo for the JvValidators component as well as the JvE' + 'rrorProvider and, to some extent, the JvValidationSummary compon' + 'ent.' '' 'By creating and setting up different validators (at run-time in ' + 'this demo but you can do it at design-time as well), the edit bo' + 'xes can be checked for validity by a single call to the Validate' + ' method. When one of the validators finds that a control doesn'#39't' + ' match the validation criteria, that error can be handled in dif' + 'ferent ways depending on your needs.' '' 'One option is to just check the boolean return value from Valida' + 'te and display a standard message box telling the user that a va' + 'lue didn'#39't match.' '' 'You can also handle the OnValidateFailed event of all validators' + ' at once (the TJvValidators event) or for each validator separat' + 'ely (the TJvBaseValidator event). Yet another option is to assig' + 'n a TJvValidationSummary component to the ValidationSummary prop' + 'erty of tJvValidators and handle it'#39's OnChange event.' '' 'Finally, you can combine the work of the validators with the use' + ' of a TJvErrorIndicator.' '' 'For more info on TJvErrorIndicator, see the demo for that compon' + 'ent (also included).' '' 'By clicking any of the buttons below, you can see how the differ' + 'ent methods described work in real-time.' '' '') ParentColor = True ParentCtl3D = False ReadOnly = True ScrollBars = ssBoth TabOrder = 8 WordWrap = False OnEnter = reResultsEnter end object btnValSum: TButton Left = 174 Top = 210 Width = 200 Height = 25 Anchors = [akLeft, akBottom] Caption = 'Use JvValidationSummary' TabOrder = 6 OnClick = btnValSumClick end object JvValidators1: TJvValidators ValidationSummary = JvValidationSummary1 ErrorIndicator = JvErrorIndicator1 OnValidateFailed = JvValidators1ValidateFailed Left = 258 Top = 104 object JvRequiredFieldValidator1: TJvRequiredFieldValidator Valid = True ControlToValidate = edRequired PropertyToValidate = 'Text' Enabled = True ErrorMessage = 'Value in edRequired cannot be empty' end object JvCustomValidator1: TJvCustomValidator Valid = True ControlToValidate = edRequired10Chars PropertyToValidate = 'Text' Enabled = True ErrorMessage = 'Value in "edRequired10Chars" requires at least 10 characters' OnValidate = JvCustomValidator1Validate end object JvRegularExpressionValidator1: TJvRegularExpressionValidator Valid = True ControlToValidate = edRegExpr PropertyToValidate = 'Text' Enabled = True ErrorMessage = 'Value in "edRegExpr" does not match "A.B.C."' ValidationExpression = '^A.B.C.*' end object JvRangeValidator1: TJvRangeValidator Valid = True ControlToValidate = udRange0to100 PropertyToValidate = 'Position' Enabled = True ErrorMessage = 'Value in "udRange0to100" must be between 0 and 100' MinimumValue = 0 MaximumValue = 100 end end object JvErrorIndicator1: TJvErrorIndicator ImageIndex = 0 Left = 296 Top = 104 end object JvValidationSummary1: TJvValidationSummary OnChange = JvValidationSummary1Change Left = 328 Top = 104 end end