Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-03-2008
rauros rauros is offline
Miembro
 
Registrado: feb 2008
Ubicación: Alicante - Sax / Sax - Alicante
Posts: 235
Poder: 19
rauros Va por buen camino
Aparte necesito una pequeñita ayuda. Es que cuando se cierra la aplicación te pregunte si quieres guardar. Entonces yo he hecho esto, pero si clico en cualquier botón me lo vuelve a preguntar(dos veces, luego hace lo que tiene que hacer).

Código Delphi [-]
If cambiado = true then begin
form3:=Tform3.Create(Self);
if form3.ShowModal=mrOk then begin//si se ha puslado aceptar...
form3.Free;
if form1.SaveDialog1.Execute then begin//Se carga guardar...
Form1.memo1.Lines.SaveToFile(form1.SaveDialog1.FileName);
halt;
end;
end
else if form3.ShowModal=mrCancel then begin//si se ha puslado cancelar...
canclose:=false;
form3.Destroy;
end;
end;
end;
Responder Con Cita
  #2  
Antiguo 04-03-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 27
Delphius Va camino a la fama
Cita:
Empezado por rauros Ver Mensaje
Aparte necesito una pequeñita ayuda. Es que cuando se cierra la aplicación te pregunte si quieres guardar. Entonces yo he hecho esto, pero si clico en cualquier botón me lo vuelve a preguntar(dos veces, luego hace lo que tiene que hacer).

Código Delphi [-]If cambiado = true then begin form3:=Tform3.Create(Self); if form3.ShowModal=mrOk then begin//si se ha puslado aceptar...
form3.Free;
if form1.SaveDialog1.Execute then begin//Se carga guardar...
Form1.memo1.Lines.SaveToFile(form1.SaveDialog1.FileName);
halt;
end;
end else if form3.ShowModal=mrCancel then begin//si se ha puslado cancelar...
canclose:=false;
form3.Destroy;
end;
end;
end;
El problema de porque te lo muestra dos veces se debe a que ShowModal abre la ventana y se queda esperando la orden de pulsado y una vez que se recibe esa orden (que se traduce en esas constantes mrok, etc) se debe decidir que hacer se soluciona de esta simple manera:

Código Delphi [-]
if form3.ShowModal = mrOK
  then begin
         // se ha dado OK... que hacer
         end
  else begin
          // se ha dado en Cancel... que hacer...
        end;

E incluso podrías hacerlo mejor con un case:

Código Delphi [-]
case form3.ShowModal of
mrOK: //que hacer....
...
end;

Por lo de el error de Access Violation y el código ese... tendría que fijarme... no tengo delphi abierto en estos momentos.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #3  
Antiguo 04-03-2008
rauros rauros is offline
Miembro
 
Registrado: feb 2008
Ubicación: Alicante - Sax / Sax - Alicante
Posts: 235
Poder: 19
rauros Va por buen camino
El problema es que no se usar el case con más de una linea seguida... ¿Cómo puedo hacer 2 sumas, por ejemplo?

Case x of
1: y:=5+3;
y:= y * 2;
2: ...

etc... Cargar dos lineas en el mismo case.
Responder Con Cita
  #4  
Antiguo 04-03-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 27
Delphius Va camino a la fama
Hola, creo haberte explicado en otra ocasión que la regla dice así:

Cita:
si en algún momento determinado se necesita de más de una sentencia, necesariamente deben ir entre begin y end.
Código Delphi [-]
case algo of
1: begin
     //sentencias
    end;
2: begin
    //sentencias
    end;
3: una sola sentencia
end; // fin case

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #5  
Antiguo 04-03-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
Generalizando la regla... en pascal, cualquier lugar donde iría una sentencia, podes sustituirlo por un grupo de sentencias encerradas en un bloque begin/end.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #6  
Antiguo 04-03-2008
rauros rauros is offline
Miembro
 
Registrado: feb 2008
Ubicación: Alicante - Sax / Sax - Alicante
Posts: 235
Poder: 19
rauros Va por buen camino
Okey. Ahora he conseguido hacer que funcione. Y todo gracias a vosotros. Y gracias por esa regla de sintaxis, es bastante útil.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
componente editor de texto clanmilano Varios 1 23-01-2006 15:41:37
necesito editor de texto.... User_baja1 Varios 4 21-03-2005 11:53:30
Editor de Texto kael Varios 1 02-11-2004 18:18:42
Editor Texto Richedit cesar_picazo Varios 1 27-04-2004 18:34:59
Editor que resalte texto igest2000 Varios 0 10-12-2003 16:23:21


La franja horaria es GMT +2. Ahora son las 06:05:03.


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