diff --git a/components/jvcllaz/design/JvValidators/jvvalidatorreg.pp b/components/jvcllaz/design/JvValidators/jvvalidatorreg.pp index 22e302691..b52c9321f 100644 --- a/components/jvcllaz/design/JvValidators/jvvalidatorreg.pp +++ b/components/jvcllaz/design/JvValidators/jvvalidatorreg.pp @@ -12,7 +12,7 @@ procedure Register; implementation -{$R ..\..\resource\JvValidatorsReg.res} +{$R ..\..\resource\jvvalidatorsreg.res} uses JvDsgnConsts, JvValidators, JvErrorIndicator, JvValidatorsEditorForm; diff --git a/components/jvcllaz/design/JvValidators/jvvalidatorseditorform.pas b/components/jvcllaz/design/JvValidators/jvvalidatorseditorform.pas index b382b93da..f67b0a939 100644 --- a/components/jvcllaz/design/JvValidators/jvvalidatorseditorform.pas +++ b/components/jvcllaz/design/JvValidators/jvvalidatorseditorform.pas @@ -412,7 +412,7 @@ end; procedure TfrmValidatorsEditor.DoAddNewValidator(Sender: TObject); begin with Sender as TAction do - AddNew(TJvBaseValidatorClass(Tag)); + AddNew({%H-}TJvBaseValidatorClass(Tag)); end; type @@ -438,7 +438,7 @@ begin end; A := TAction.Create(Self); A.Caption := AName; - A.Tag := NativeInt(AClass); + A.Tag := {%H-}PtrInt(AClass); A.ImageIndex := 0; if I - K < 9 then A.ShortCut := ShortCut(Ord('0') + I + 1 - K, [ssCtrl]); diff --git a/components/jvcllaz/examples/JvValidators/JvValidatorsDemo.lpi b/components/jvcllaz/examples/JvValidators/JvValidatorsDemo.lpi index e7bfe75df..cd904ca58 100644 --- a/components/jvcllaz/examples/JvValidators/JvValidatorsDemo.lpi +++ b/components/jvcllaz/examples/JvValidators/JvValidatorsDemo.lpi @@ -1,24 +1,20 @@ - + + - <UseAppBundle Value="False"/> <ResourceType Value="res"/> <UseXPManifest Value="True"/> - <XPManifest> - <TextName Value="CompanyName.ProductName.AppName"/> - <TextDesc Value="Your application description."/> - </XPManifest> </General> <i18n> <EnableI18N LFM="False"/> @@ -30,9 +26,10 @@ <Version Value="2"/> </PublishOptions> <RunParams> - <local> - <FormatVersion Value="1"/> - </local> + <FormatVersion Value="2"/> + <Modes Count="1"> + <Mode0 Name="default"/> + </Modes> </RunParams> <RequiredPackages Count="2"> <Item1> diff --git a/components/jvcllaz/examples/JvValidators/MainFrm.lfm b/components/jvcllaz/examples/JvValidators/MainFrm.lfm index b76682261..218c489e3 100644 --- a/components/jvcllaz/examples/JvValidators/MainFrm.lfm +++ b/components/jvcllaz/examples/JvValidators/MainFrm.lfm @@ -1,133 +1,197 @@ object frmMain: TfrmMain Left = 306 - Height = 274 + Height = 270 Top = 126 - Width = 619 + Width = 519 + AutoSize = True Caption = 'JvValidators demo' - ClientHeight = 274 - ClientWidth = 619 + ClientHeight = 270 + ClientWidth = 519 Color = clBtnFace - Constraints.MinHeight = 270 - Constraints.MinWidth = 560 DefaultMonitor = dmDesktop Font.Color = clWindowText OnCreate = FormCreate + OnShow = FormShow Position = poScreenCenter - LCLVersion = '1.7' + LCLVersion = '2.1.0.0' object Label1: TLabel + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = Owner Left = 16 Height = 15 Top = 16 Width = 167 + BorderSpacing.Left = 16 + BorderSpacing.Top = 16 Caption = 'This edit must have a(ny) value:' FocusControl = edRequired ParentColor = False end object Label2: TLabel + AnchorSideLeft.Control = Label1 + AnchorSideTop.Control = edRequired + AnchorSideTop.Side = asrBottom Left = 16 Height = 15 - Top = 64 + Top = 66 Width = 233 + BorderSpacing.Top = 8 Caption = 'This edit must have more than 9 characters:' FocusControl = edRequired10Chars ParentColor = False end object Label3: TLabel + AnchorSideLeft.Control = Label1 + AnchorSideTop.Control = edRequired10Chars + AnchorSideTop.Side = asrBottom Left = 16 Height = 15 - Top = 112 + Top = 116 Width = 228 + BorderSpacing.Top = 8 Caption = 'This edit must match the reg. expr."A.B.C.":' FocusControl = edRegExpr ParentColor = False end object Label4: TLabel + AnchorSideLeft.Control = Label1 + AnchorSideTop.Control = edRegExpr + AnchorSideTop.Side = asrBottom Left = 16 Height = 15 - Top = 160 + Top = 162 Width = 201 + BorderSpacing.Top = 8 Caption = 'The value must be between 0 and 100:' FocusControl = edRange0to100 ParentColor = False end object Label5: TLabel - Left = 280 + AnchorSideLeft.Control = edRequired10Chars + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = Label1 + Left = 281 Height = 15 Top = 16 Width = 35 + BorderSpacing.Left = 32 Caption = 'Result:' ParentColor = False end object edRequired: TEdit + AnchorSideLeft.Control = Label1 + AnchorSideTop.Control = Label1 + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = edRequired10Chars + AnchorSideRight.Side = asrBottom Left = 16 Height = 23 - Top = 32 - Width = 240 + Top = 35 + Width = 233 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Top = 4 TabOrder = 0 end object edRequired10Chars: TEdit + AnchorSideLeft.Control = Label1 + AnchorSideTop.Control = Label2 + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = Label2 + AnchorSideRight.Side = asrBottom Left = 16 Height = 23 - Top = 80 - Width = 240 + Top = 85 + Width = 233 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Top = 4 TabOrder = 1 end object edRegExpr: TEdit + AnchorSideLeft.Control = Label1 + AnchorSideTop.Control = Label3 + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = edRequired10Chars + AnchorSideRight.Side = asrBottom Left = 16 Height = 23 - Top = 128 - Width = 240 + Top = 131 + Width = 233 + Anchors = [akTop, akLeft, akRight] TabOrder = 2 end object edRange0to100: TEdit + AnchorSideLeft.Control = Label1 + AnchorSideTop.Control = Label4 + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = udRange0to100 Left = 16 Height = 23 - Top = 176 - Width = 227 + Top = 181 + Width = 212 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Top = 4 + BorderSpacing.Right = 4 TabOrder = 3 Text = '-1' end object udRange0to100: TUpDown - Left = 243 + AnchorSideRight.Control = edRequired10Chars + AnchorSideRight.Side = asrBottom + Left = 232 Height = 23 - Top = 176 - Width = 15 + Top = 181 + Width = 17 + Anchors = [akTop, akRight] Associate = edRange0to100 Max = 200 Min = -100 Position = -1 TabOrder = 4 - Wrap = False end object btnCheck: TButton - Left = 336 + AnchorSideLeft.Control = btnValSum + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = btnProviderCheck + Left = 356 Height = 25 - Top = 224 + Top = 228 Width = 137 - Anchors = [akLeft, akBottom] AutoSize = True + BorderSpacing.Left = 24 + BorderSpacing.Right = 16 Caption = 'Use OnValidateFailed' OnClick = btnCheckClick TabOrder = 7 end object btnProviderCheck: TButton + AnchorSideLeft.Control = Label1 + AnchorSideTop.Control = edRange0to100 + AnchorSideTop.Side = asrBottom Left = 16 Height = 25 - Top = 224 + Top = 228 Width = 130 - Anchors = [akLeft, akBottom] AutoSize = True + BorderSpacing.Top = 24 + BorderSpacing.Bottom = 16 Caption = 'Use JvErrorIndicator' OnClick = btnProviderCheckClick TabOrder = 5 end object reResults: TMemo + AnchorSideLeft.Control = Label5 + AnchorSideTop.Control = edRequired + AnchorSideRight.Control = Owner + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Control = edRange0to100 + AnchorSideBottom.Side = asrBottom Cursor = crArrow - Left = 280 - Height = 167 - Top = 32 - Width = 326 - Anchors = [akTop, akLeft, akRight, akBottom] + Left = 281 + Height = 169 + Top = 35 + Width = 212 + Anchors = [akTop, akLeft, akBottom] + BorderSpacing.Right = 16 Lines.Strings = ( 'This is a demo for the JvValidators component as well as the JvErrorProvider and, to some extent, the JvValidationSummary component.' '' @@ -154,20 +218,23 @@ object frmMain: TfrmMain WordWrap = False end object btnValSum: TButton - Left = 160 + AnchorSideLeft.Control = btnProviderCheck + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = btnProviderCheck + Left = 170 Height = 25 - Top = 224 + Top = 228 Width = 162 - Anchors = [akLeft, akBottom] AutoSize = True + BorderSpacing.Left = 24 Caption = 'Use JvValidationSummary' OnClick = btnValSumClick TabOrder = 6 end object JvValidators1: TJvValidators OnValidateFailed = JvValidators1ValidateFailed - left = 258 - top = 104 + left = 408 + top = 24 object JvRequiredFieldValidator1: TJvRequiredFieldValidator ControlToValidate = edRequired PropertyToValidate = 'Text' @@ -197,12 +264,12 @@ object frmMain: TfrmMain object JvErrorIndicator1: TJvErrorIndicator ImageIndex = 0 DefaultUseAnchors = False - left = 296 - top = 104 + left = 408 + top = 80 end object JvValidationSummary1: TJvValidationSummary OnChange = JvValidationSummary1Change - left = 328 - top = 104 + left = 408 + top = 136 end end diff --git a/components/jvcllaz/examples/JvValidators/MainFrm.pas b/components/jvcllaz/examples/JvValidators/MainFrm.pas index ecc123e4a..d994e1061 100644 --- a/components/jvcllaz/examples/JvValidators/MainFrm.pas +++ b/components/jvcllaz/examples/JvValidators/MainFrm.pas @@ -64,6 +64,7 @@ type 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); @@ -95,6 +96,16 @@ begin 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; @@ -162,6 +173,7 @@ 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 diff --git a/components/jvcllaz/run/JvValidators/jvvalidators.pas b/components/jvcllaz/run/JvValidators/jvvalidators.pas index eaf2e3b2c..1fb9a070c 100644 --- a/components/jvcllaz/run/JvValidators/jvvalidators.pas +++ b/components/jvcllaz/run/JvValidators/jvvalidators.pas @@ -96,8 +96,8 @@ type // get the number of registered base validator classes class function BaseValidatorsCount: Integer; // get info on a registered class - class procedure GetBaseValidatorInfo(Index: Integer; var DisplayName: string; - var ABaseValidatorClass: TJvBaseValidatorClass); + class procedure GetBaseValidatorInfo(Index: Integer; out DisplayName: string; + out ABaseValidatorClass: TJvBaseValidatorClass); public {$IFDEF JVVALIDATORS_SUPPORTS_DBCONTROLS} @@ -305,7 +305,7 @@ begin Result := GlobalValidatorsList; end; -procedure Debug(const Msg: string); overload; +procedure Debug(const {%H-}Msg: string); overload; begin {$IFDEF VALIDATORS_DEBUG} DebugLn(Msg); @@ -379,7 +379,7 @@ begin end; class procedure TJvBaseValidator.GetBaseValidatorInfo(Index: Integer; - var DisplayName: string; var ABaseValidatorClass: TJvBaseValidatorClass); + out DisplayName: string; out ABaseValidatorClass: TJvBaseValidatorClass); begin if (Index < 0) or (Index >= ValidatorsList.Count) then raise Exception.CreateFmt(RsEInvalidIndexd, [Index]);