You've already forked lazarus-ccr
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6941 8e941d3f-bd1b-0410-a28a-d453659cc2b4
187 lines
5.4 KiB
ObjectPascal
187 lines
5.4 KiB
ObjectPascal
{******************************************************************
|
|
|
|
JEDI-VCL Demo
|
|
|
|
Copyright (C) 2002 Project JEDI
|
|
|
|
Original author:
|
|
|
|
Contributor(s):
|
|
|
|
You may retrieve the latest version of this file at the JEDI-JVCL
|
|
home page, located at http://jvcl.delphi-jedi.org
|
|
|
|
The contents of this file are used with permission, subject to
|
|
the Mozilla Public License Version 1.1 (the "License"); you may
|
|
not use this file except in compliance with the License. You may
|
|
obtain a copy of the License at
|
|
http://www.mozilla.org/MPL/MPL-1_1Final.html
|
|
|
|
Software distributed under the License is distributed on an
|
|
"AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
implied. See the License for the specific language governing
|
|
rights and limitations under the License.
|
|
|
|
******************************************************************}
|
|
|
|
unit MainFrm;
|
|
|
|
{.$I jvcl.inc}
|
|
|
|
interface
|
|
|
|
uses
|
|
SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
StdCtrls, ComCtrls, JvValidators, JvErrorIndicator;
|
|
|
|
type
|
|
|
|
{ TfrmMain }
|
|
|
|
TfrmMain = class(TForm)
|
|
Label1: TLabel;
|
|
edRequired: TEdit;
|
|
Label2: TLabel;
|
|
edRequired10Chars: TEdit;
|
|
Label3: TLabel;
|
|
edRegExpr: TEdit;
|
|
Label4: TLabel;
|
|
edRange0to100: TEdit;
|
|
udRange0to100: TUpDown;
|
|
btnCheck: TButton;
|
|
Label5: TLabel;
|
|
btnProviderCheck: TButton;
|
|
reResults: TMemo;
|
|
btnValSum: TButton;
|
|
JvValidators1: TJvValidators;
|
|
JvErrorIndicator1: TJvErrorIndicator;
|
|
JvValidationSummary1: TJvValidationSummary;
|
|
JvRequiredFieldValidator1: TJvRequiredFieldValidator;
|
|
JvCustomValidator1: TJvCustomValidator;
|
|
JvRegularExpressionValidator1: TJvRegularExpressionValidator;
|
|
JvRangeValidator1: TJvRangeValidator;
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure btnCheckClick(Sender: TObject);
|
|
procedure btnProviderCheckClick(Sender: TObject);
|
|
procedure btnValSumClick(Sender: TObject);
|
|
procedure FormShow(Sender: TObject);
|
|
procedure reResultsEnter(Sender: TObject);
|
|
procedure JvCustomValidator1Validate(Sender: TObject;
|
|
ValueToValidate: Variant; var Valid: Boolean);
|
|
procedure JvValidators1ValidateFailed(Sender: TObject;
|
|
BaseValidator: TJvBaseValidator; var Continue: Boolean);
|
|
procedure JvValidationSummary1Change(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
procedure ProviderErrorValidateFailed(Sender: TObject;
|
|
BaseValidator: TJvBaseValidator; var Continue: Boolean);
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
frmMain: TfrmMain;
|
|
|
|
implementation
|
|
|
|
uses
|
|
Variants;
|
|
|
|
{$R *.lfm}
|
|
|
|
procedure TfrmMain.FormCreate(Sender: TObject);
|
|
begin
|
|
reResults.WordWrap := true;
|
|
JvValidators1.ErrorIndicator := JvErrorIndicator1;
|
|
JvValidators1.ValidationSummary := JvValidationSummary1;
|
|
end;
|
|
|
|
procedure TfrmMain.FormShow(Sender: TObject);
|
|
begin
|
|
AutoSize := false;
|
|
reResults.Anchors := reResults.Anchors + [akRight];;
|
|
Constraints.MinWidth := Width;
|
|
Constraints.MinHeight := Height;
|
|
Width := Width + 100;
|
|
end;
|
|
|
|
|
|
procedure TfrmMain.btnCheckClick(Sender: TObject);
|
|
begin
|
|
reResults.Lines.Clear;
|
|
reResults.WordWrap := false;
|
|
JvErrorIndicator1.ClearErrors;
|
|
JvValidators1.ValidationSummary := nil;
|
|
JvValidators1.ErrorIndicator := nil;
|
|
JvValidators1.OnValidateFailed := JvValidators1ValidateFailed;
|
|
JvValidators1.Validate;
|
|
end;
|
|
|
|
procedure TfrmMain.btnProviderCheckClick(Sender: TObject);
|
|
begin
|
|
reResults.Lines.Clear;
|
|
reResults.WordWrap := false;
|
|
// calling BeginUpdate/EndUpdate delays the error reporting until all controls have been validated
|
|
JvErrorIndicator1.BeginUpdate;
|
|
try
|
|
JvErrorIndicator1.ClearErrors;
|
|
JvValidators1.ValidationSummary := nil;
|
|
// custom error messages for this type of check
|
|
JvValidators1.OnValidateFailed := ProviderErrorValidateFailed;
|
|
JvValidators1.Validate;
|
|
finally
|
|
JvErrorIndicator1.EndUpdate;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmMain.btnValSumClick(Sender: TObject);
|
|
begin
|
|
reResults.Lines.Clear;
|
|
reResults.WordWrap := false;
|
|
JvErrorIndicator1.ClearErrors;
|
|
JvValidators1.OnValidateFailed := nil;
|
|
JvValidators1.ErrorIndicator := nil;
|
|
// Setting the ValidationSummary for TJvValidators will delay
|
|
// triggering the OnChange event until after Validate has completed
|
|
JvValidationSummary1.Summaries.Clear;
|
|
JvValidators1.ValidationSummary := JvValidationSummary1;
|
|
JvValidators1.Validate;
|
|
end;
|
|
|
|
procedure TfrmMain.reResultsEnter(Sender: TObject);
|
|
begin
|
|
SelectNext(reResults,true,true);
|
|
end;
|
|
|
|
procedure TfrmMain.JvCustomValidator1Validate(Sender: TObject;
|
|
ValueToValidate: Variant; var Valid: Boolean);
|
|
begin
|
|
// custom validation
|
|
Valid := not VarIsNull(ValueToValidate) and (Length(string(ValueToValidate)) >= 10);
|
|
end;
|
|
|
|
procedure TfrmMain.JvValidators1ValidateFailed(Sender: TObject;
|
|
BaseValidator: TJvBaseValidator; var Continue: Boolean);
|
|
begin
|
|
// using the OnValidateFailed event
|
|
reResults.Lines.Add(Format('FAILED: %s',[BaseValidator.ErrorMessage]));
|
|
end;
|
|
|
|
procedure TfrmMain.ProviderErrorValidateFailed(Sender: TObject;
|
|
BaseValidator: TJvBaseValidator; var Continue: Boolean);
|
|
begin
|
|
JvErrorIndicator1.Error[BaseValidator.ControlToValidate] := BaseValidator.ErrorMessage;
|
|
reResults.Lines.Add(Format('PROVIDER: %s',[BaseValidator.ErrorMessage]));
|
|
end;
|
|
|
|
procedure TfrmMain.JvValidationSummary1Change(Sender: TObject);
|
|
var i:integer;
|
|
begin
|
|
// update all at once
|
|
reResults.Lines.Text := TJvValidationSummary(Sender).Summaries.Text;
|
|
for i := 0 to reResults.Lines.Count - 1 do
|
|
reResults.Lines[i] := 'SUMMARY: ' + reResults.Lines[i];
|
|
end;
|
|
|
|
end.
|