Ver Mensaje Individual
  #46  
Antiguo 04-03-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Reputación: 25
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