anchor.diff:  uses
     Classes,
     SysUtils,
  -  Variants;
  +  Variants,
  +  fpg_base;
   
     
     // Call showMessage, but accepts a variant. Good for debugging.
  
positive.code: 
    
    // Show the contents of a TStringList - for debugging
    procedure tiShowStringList(const pStringList: TStringList; const pHeading: string = 'Show string list');
    // Show the contents of a TStrings - for debugging
    procedure tiShowStrings(const AStrings: TStrings; const pHeading: string = 'Show strings');
    // Show a long string - for debugging
    procedure tiShowString(const AStr: string; const pHeading: string = 'Show string');
    // Show a variant array of variants - for debugging
    procedure tiShowVariant(AValue: Variant; pHeading: string = 'Show variant');
    // Show the contents of a stream
    procedure tiShowStream(const AValue: TStream; const pHeading: string = 'Show stream');
    // Show a <Yes>, <No> dialog box, and return true if <Yes> was selected
    function tiAppConfirmation(const AMessage: string; ATitle: string = ''): boolean; overload;
    function tiAppConfirmation(const AMessage: string; const AValues: array of const): boolean; overload;
    // Show a message
    procedure tiAppMessage(const AMessage: string; ATitle: string = '');
    // Show a warning
    procedure tiAppWarning(const AMessage: string; ATitle: string = '');
    // Show a error message
    procedure tiAppError(const AMessage: string; ATitle: string = '');
  
    // A type of notification window that will disappear by it self
    procedure tiProcessing(const AMessage: TfpgString);
  
negative.code:   try
      AValue.Position := 0;
      lStringStream.CopyFrom(AValue, AValue.Size);
      tiShowString(lStringStream.DataString, AHeading);
    finally
      lStringStream.Free;
    end;
  end;
  
  function tiAppConfirmation(const AMessage: TfpgString; ATitle: TfpgString = ''): boolean;
  begin
    Result := TfpgMessageDialog.Question(ATitle, AMessage) = mbYes
  end;
  
  function tiAppConfirmation(const AMessage: TfpgString;
    const AValues: array of const): boolean;
  begin
    Result := tiAppConfirmation(Format(AMessage, AValues));
  end;
  
  procedure tiAppMessage(const AMessage: TfpgString; ATitle: TfpgString = '');
  begin
    TfpgMessageDialog.Information(ATitle, AMessage);
  end;
  
  procedure tiAppWarning(const AMessage: TfpgString; ATitle: TfpgString = '');
  begin
    TfpgMessageDialog.Warning(ATitle, AMessage);
  end;
  
  procedure tiAppError(const AMessage: TfpgString; ATitle: TfpgString = '');
  begin
    TfpgMessageDialog.Critical(ATitle, AMessage);
  end;
  