Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-04-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Problema con application.messagebox

Hola, después de tiempo sin entrar, vuelvo a las andanzas con delphi, así que aprovecho para saludar.

A ver tengo un formulario, que llama a otro en modo modal, este segundo formulario tiene un pequeño editor de textos. En el evento close de este, muestro un mensaje en caso de que el editor sea distinto a blanco y el usuario tiene la opcion de salir sin guardar o volver al editor y guardar los cambios para salir. El problema lo tengo cuando pulso el boton "cancelar", que tras pulsarlo, el segundo formulario (que se mostraba en modal), se cierra y no quiero que eso pase. Lo que busco es que cuando el usuario pulse sobre "cancelar", todo siga igual, es decir, devolver al usuario al editor de textos sin que haya cambios en este ni cerrando nada.

El codigo que tengo hasta ahora es este:

Código Delphi [-]
procedure TbEditor.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if memo1.Text<>'' then
    if Application.MessageBox('Si cierras sin guardar, se perderán los datos en el editor de textos'+
    chr(10)+'¿Está seguro de querer salir sin guardar?','Atención',mb_okCancel+mb_iconExclamation) = idOk then
      begin
        memo1.Text:= '';
        close
      end
    else
      exit
end;

Gracias de antemano.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #2  
Antiguo 16-04-2014
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cambia:
Código Delphi [-]
  exit

Por:

Código Delphi [-]
  Action := caNone;

Estoy ahorrador en palabras...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 16-04-2014
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

El evento "OnCloseQuery" podría resultar aquí más conveniente que "OnClose", de manera que podría escribirse algo así:

Código Delphi [-]
procedure TForm1.FormCloseQuery( Sender : TObject; var CanClose : Boolean );
begin
  CanClose := ( Memo1.Text = '' ) or ( Application.MessageBox
  (
    'Si cierras sin guardar, se perderán los datos en el editor de textos'
     + #10#10 + '¿Está seguro de querer salir sin guardar?',
    'Atención',
    MB_OKCANCEL + MB_ICONINFORMATION
  ) = IDOK );
end;
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 16-04-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Hola, el método de Neftali, ha sido perfecto, de todos modos, probaré también lo que me comentas Dec, así amplio mi "cuaderno de notas" donde tengo anotados muchos consejos y truquitos que he ido recopilando.

Gracias a los dos.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Mover un Application.MessageBox Efren2006 OOP 5 10-08-2013 05:49:23
Problema con MessageDLG o Application.MessageBox federico1 Varios 4 26-12-2006 18:54:41
¿Application.MessageBox? Ledian_Fdez Varios 8 23-10-2006 22:19:44
Application.MessageBox !!! !3d1@n Varios 2 07-03-2005 20:22:20
problema con application.MessageBox ctronx Varios 3 12-01-2005 17:27:44


La franja horaria es GMT +2. Ahora son las 19:40:33.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi