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 03-03-2009
THACKER THACKER is offline
Miembro
 
Registrado: jun 2008
Posts: 44
Poder: 0
THACKER Va por buen camino
Question Cual es el problema con este codigo?

Bueno no puedo ejecutar la aplicasion por que este codigo me da error:

Código Delphi [-]
procedure TMDIChild.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if synedit1.Modified = true then
begin

  if messagebox(handle, 'Press Y to Exit ? [Y or N]', 'Select...', MB_YESNO)=IDYES then
  messagebox (handle, 'YES', 'YEA', mb_iconinformation);
    end else begin
      messagebox (handle, 'NO', 'NO', mb_iconinformation);
     end;
  end else begin
close;
end;

Aver quien me ayuda :S
Responder Con Cita
  #2  
Antiguo 03-03-2009
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 23
Crandel Va por buen camino
Hola THACKER, hay varios errores

1. Hay un end que no cierra ningun begin, por lo que no te va a compilar.
2. En el evento CloseQuery lo unico que debes modificar es el parametro CanClose y no denes llamar de nuevo a Close porque te va a dar error

Asi que el codigo deberia quedar asi:

Código Delphi [-]
procedure TMDIChild.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  if synedit1.Modified then
    CanClose := MessageBox(handle, 'Press Y to Exit ? [Y or N]', 'Select...', MB_YESNO) = IDYES;
end;

Suerte
__________________
[Crandel]
Responder Con Cita
  #3  
Antiguo 03-03-2009
THACKER THACKER is offline
Miembro
 
Registrado: jun 2008
Posts: 44
Poder: 0
THACKER Va por buen camino
Question

Hmmm no me funciona :S
Se queda el No pegado sera que puedes completar el script con el IF para si el usuario selecciona si para guardar los cambios?

Espero respuesta que no quiero raspar ! :'(
Código Delphi [-]
procedure TMDIChild.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if synedit1.Modified = true then
begin
CanClose := messagebox(handle, 'Press Y to Exit ? [Y or N]', 'Select...', MB_YESNO)=IDYES;
  messagebox (handle, 'YES', 'YEA', mb_iconinformation);
    end else begin
      messagebox (handle, 'NO', 'NO', mb_iconinformation);
     end;
close;
end;

Última edición por THACKER fecha: 03-03-2009 a las 08:12:06.
Responder Con Cita
  #4  
Antiguo 03-03-2009
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 23
Crandel Va por buen camino
Por que no explicas cual es la logica que quieres implementar ?

La pregunta es si quiere salir ? si quiere guardar ? son dos preguntas por separado ?
__________________
[Crandel]
Responder Con Cita
  #5  
Antiguo 03-03-2009
THACKER THACKER is offline
Miembro
 
Registrado: jun 2008
Posts: 44
Poder: 0
THACKER Va por buen camino
Question

Osea dejame explicarme.

Se trataria algo asi, que el synedit al estar modificado y al tratar de cerrarlo este pregunte si se desean guardar los cambios.
Código Delphi [-]
procedure TMDIChild.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if synedit1.Modified = true then
begin
CanClose := messagebox(handle, 'Desea guardar los cambios al script?', 'Selecciona', MB_YESNO)=IDYES;
  messagebox (handle, 'YES', 'YEA', mb_iconinformation);
    end else begin
      messagebox (handle, 'NO', 'NO', mb_iconinformation);
     end;
close;
end;

Y que se ejecute cierto savedialog y que al seleccionar No el mismo se cierre sin guardar cambios.
Pero claro ese script no sirve me da error :S
Responder Con Cita
  #6  
Antiguo 03-03-2009
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 23
Crandel Va por buen camino
entonces no debes modificar CanClose, porque la idea es salir siempre, solo saber si desea guardar antes los cambios o no.

Código Delphi [-]
procedure TMDIChild.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  if synedit1.Modified = true then
  begin
    if messagebox(handle, 'Desea guardar los cambios antes de salir?', 'Selecciona', MB_YESNO)=IDYES then
      messagebox (handle, 'YES', 'YEA', mb_iconinformation);
    else
      messagebox (handle, 'NO', 'NO', mb_iconinformation);
  end;
end;
__________________
[Crandel]
Responder Con Cita
  #7  
Antiguo 03-03-2009
THACKER THACKER is offline
Miembro
 
Registrado: jun 2008
Posts: 44
Poder: 0
THACKER Va por buen camino
Question

Muchas gracias [Crandel]!!
uffff ya casi no me da error y es parte de lo que me falta para completar el examen, pero me da este error:

Código:
[ERROR] CHILDWIN.PAS :
' ; ' not allowed before 'else'
En este script:

Código Delphi [-]
procedure TMDIChild.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  if synedit1.Modified = true then
  begin
    if messagebox(handle, 'Desea guardar los cambios antes de salir?', 'Selecciona', MB_YESNO)=IDYES then
      messagebox (handle, 'YES', 'YEA', mb_iconinformation);
    else
      messagebox (handle, 'NO', 'NO', mb_iconinformation);
  end;
end;

Alguna idea?: :S
Responder Con Cita
  #8  
Antiguo 03-03-2009
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.735
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Código Delphi [-]
procedure TMDIChild.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  if synedit1.Modified = true then
  begin
    if messagebox(handle, 'Desea guardar los cambios antes de salir?', 'Selecciona', MB_YESNO)=IDYES then
      messagebox (handle, 'YES', 'YEA', mb_iconinformation)  {  ;  Sobra este }
    else
      messagebox (handle, 'NO', 'NO', mb_iconinformation);
  end;
end;
Responder Con Cita
  #9  
Antiguo 03-03-2009
THACKER THACKER is offline
Miembro
 
Registrado: jun 2008
Posts: 44
Poder: 0
THACKER Va por buen camino
Question Ayuda por favor

Por favor espero alguien me ayude es urgente!

no importa cuantas veses lo trate, el sistema no funciona como deberia
veran quisiera esto aver si alguien me logra ayudar y lograr hacerlo funcionar llevo 2 horas en esto ¬¬

Código Delphi [-]
procedure TMDIChild.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  if synedit1.Modified = true then
  begin
    if messagebox(handle, 'Desea guardar los cambios antes de salir?', 'Selecciona', MB_YESNO)=IDYES then
      messagebox (handle, 'YES', 'YEA', mb_iconinformation);
      MainForm.Close;
    end else begin
      messagebox (handle, 'NO', 'NO', mb_iconinformation);
      MainForm.close;
  end;

Quisiera que pasaran los siguientes casos:
Código Delphi [-]
procedure ....
begin

if objeto.modified = true then
begin
 messagebox "Desea guardar cambios?", Botones: Yes + No
 al presionar yes:
 
 if savedialog.execute...
 si presiona no:
   end else begin
 cierra la ventana mdi
  
 end;

end;

end.

Ayuda por favor no quiero raspar :S
Responder Con Cita
  #10  
Antiguo 03-03-2009
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.735
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Código Delphi [-]
procedure TMDIChild.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  if synedit1.Modified = true then
  begin
    if messagebox(handle, 'Desea guardar los cambios antes de salir?', 'Selecciona', MB_YESNO)=IDYES then
    begin {Esta parte se ejecuta si responde SI}
      if (SaveDialog1.Execute) then
      begin
        {Esto no se si se hace así, pero es la idea}
        synedit1.Lines.SaveToFile(SaveDialog1.FileName);
      end;
      CanClose := True;
    end

    else

    begin {Esta parte se ejecuta si responde NO}
      CanClose := True;
    end;
  end;
end;

Última edición por duilioisola fecha: 03-03-2009 a las 09:54:14.
Responder Con Cita
  #11  
Antiguo 03-03-2009
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Le faltan "BEGINS" a los "ENDS". No puedes poner un END si no hay un BEGIN antes.

Si no has entendido eso entonces nunca serás capaz de escribir un programa que funcione. Debes repasar la gramática del Pascal.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
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
codigo de la tecla tab cual es? sakuragi OOP 8 17-03-2010 04:01:21
ayuda con este codigo kurono Varios 4 13-06-2008 01:03:29
Problemas con funciones de tiempo..cual es el error en este codigo rubencho PHP 5 29-04-2007 22:28:39
Que significa este codigo? D-MO PHP 14 23-01-2006 10:08:21
Por que no funciona este codigo en XP? kia Varios 3 15-10-2003 21:39:33


La franja horaria es GMT +2. Ahora son las 15:35:39.


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