Index: MainFrm.pas
===================================================================
--- MainFrm.pas	(revision 13355)
+++ MainFrm.pas	(working copy)
@@ -32,7 +32,7 @@
 
 uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
-  StdCtrls, ComCtrls, JvValidators, JvErrorIndicator, ImgList, JvComponent;
+  JvValidators, JvErrorIndicator, JvComponentBase, Vcl.StdCtrls, Vcl.ComCtrls;
 
 type
   TfrmMain = class(TForm)
@@ -48,7 +48,7 @@
     btnCheck: TButton;
     Label5: TLabel;
     btnProviderCheck: TButton;
-    reResults: TRichEdit;
+    reResults: TMemo;
     btnValSum: TButton;
     JvValidators1: TJvValidators;
     JvErrorIndicator1: TJvErrorIndicator;
@@ -67,10 +67,14 @@
     procedure JvValidators1ValidateFailed(Sender: TObject;
       BaseValidator: TJvBaseValidator; var Continue: Boolean);
     procedure JvValidationSummary1Change(Sender: TObject);
+    procedure reResultsDblClick(Sender: TObject);
   private
     { Private declarations }
+    HelpText: string;
+
     procedure ProviderErrorValidateFailed(Sender: TObject;
       BaseValidator: TJvBaseValidator; var Continue: Boolean);
+    procedure MemoWrapMode(const do_wrap: boolean);
   public
     { Public declarations }
   end;
@@ -85,15 +89,10 @@
 
 {$R *.DFM}
 
-procedure TfrmMain.FormCreate(Sender: TObject);
-begin
-  reResults.WordWrap := true;
-end;
-
 procedure TfrmMain.btnCheckClick(Sender: TObject);
 begin
   reResults.Lines.Clear;
-  reResults.WordWrap := false;
+  MemoWrapMode( false );
   JvErrorIndicator1.ClearErrors;
   JvValidators1.ValidationSummary := nil;
   JvValidators1.ErrorIndicator := nil;
@@ -104,7 +103,7 @@
 procedure TfrmMain.btnProviderCheckClick(Sender: TObject);
 begin
   reResults.Lines.Clear;
-  reResults.WordWrap := false;
+  MemoWrapMode( false );
   // calling BeginUpdate/EndUpdate delays the error reporting until all controls have been validated
   JvErrorIndicator1.BeginUpdate;
   try
@@ -121,7 +120,7 @@
 procedure TfrmMain.btnValSumClick(Sender: TObject);
 begin
   reResults.Lines.Clear;
-  reResults.WordWrap := false;
+  MemoWrapMode( false );
   JvErrorIndicator1.ClearErrors;
   JvValidators1.OnValidateFailed := nil;
   JvValidators1.ErrorIndicator := nil;
@@ -132,6 +131,18 @@
   JvValidators1.Validate;
 end;
 
+procedure TfrmMain.reResultsDblClick(Sender: TObject);
+begin
+  reResults.Lines.Text := HelpText;
+  MemoWrapMode(true);
+end;
+
+procedure TfrmMain.FormCreate(Sender: TObject);
+begin
+  HelpText := reResults.Lines.Text;
+  MemoWrapMode(true);
+end;
+
 procedure TfrmMain.reResultsEnter(Sender: TObject);
 begin
   SelectNext(reResults,true,true);
@@ -151,6 +162,14 @@
   reResults.Lines.Add(Format('FAILED: %s',[BaseValidator.ErrorMessage]));
 end;
 
+procedure TfrmMain.MemoWrapMode(const do_wrap: boolean);
+begin
+  reResults.WordWrap := do_wrap;
+  if do_wrap
+     then reResults.ScrollBars := ssVertical
+     else reResults.ScrollBars := ssBoth
+end;
+
 procedure TfrmMain.ProviderErrorValidateFailed(Sender: TObject;
   BaseValidator: TJvBaseValidator; var Continue: Boolean);
 begin
