anchor.diff:    end;
   end;
   
  -procedure TfpgMessageBox.HandleShow;
  -begin
  -  inherited HandleShow;
  -  FButton.SetFocus;
  +procedure TfpgMessageBox.FormShow(Sender: TObject);
  +begin
  +  FButton.Text := cMsgDlgBtnText[mbOK]
  +end;
  +
  +procedure TfpgMessageBox.FormKeyPressed(Sender: TObject; var KeyCode: word;
  +  var ShiftState: TShiftState; var Consumed: boolean);
  +begin
  +  if KeyCode = keyEscape then
  +  begin
  +    Consumed := False;
  +    Close;
  +  end;
   end;
   
   constructor TfpgMessageBox.Create(AOwner: TComponent);
   begin
     inherited Create(AOwner);
  -  WindowPosition := wpOneThirdDown;
  -  Sizeable := False;
  -  
     FLines        := TStringList.Create;
     FFont         := fpgGetFont('#Label1');
     FTextY        := 10;
     FLineHeight   := FFont.Height + 4;
  -  MinWidth      := 200;
     FMaxLineWidth := 500;
     FCentreText   := False;
  -  
  -  FButton := TfpgButton.Create(self);
  -  FButton.Text    := cMsgDlgBtnText[mbOK];
  -  FButton.Width   := 75;
  -  FButton.ModalResult := mrOK;
   end;
   
   destructor TfpgMessageBox.Destroy;
  
positive.code:   FFont.Free;
    FLines.Free;
    inherited Destroy;
  end;
  
  procedure TfpgMessageBox.SetMessage(AMessage: string);
  
negative.code: 
  { TfpgMessageBox }
  
  procedure TfpgMessageBox.FormPaint(Sender: TObject);
  var
    n, y: integer;
    tw: integer;
  begin
    Canvas.SetFont(FFont);
    y := FTextY;
    for n := 0 to FLines.Count-1 do
  