Lo que quieres se puede hacer perfectamente con el MessageDlg, el problema debe estar en otra parte. Sería bueno que explicaras un poco más acerca de cómo muestras el mensaje.
Por ejemplo, si el mensaje lo muestras en el evento OnClick de un botón cuya propiedad ModalResult es mrOk (quizá el botón "Aceptar" del formulario con el Edit), entonces, luego de cerrar el MessageDlg, también se cerrará el formulario con el Edit porque su propiedad ModalResult cambió.
Si la situación es parecida a lo que digo, lo que debes hacer es utlizar el evento OnCloseQuery del formulario para hacer la validación y cancelar el cierre del formulario de ser necesario:
Código Delphi
[-]
procedure TForm2.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if ModalResult = mrOk then
begin
if MontoEsMayorQueElPermitido then
begin
MessageDlg('Valor incorrecto', MtInformation, [mbOK],0);
CanClose := false;
end;
end;
end;
// Saludos