Ver Mensaje Individual
  #9  
Antiguo 07-08-2007
Avatar de salvica
salvica salvica is offline
Miembro
 
Registrado: mar 2004
Ubicación: Albacete (España) ... En un lugar de la Mancha ...
Posts: 304
Reputación: 21
salvica Va por buen camino
Hola Deiv

Cita:
Empezado por Deiv Ver Mensaje
¿Y cómo desactivo esa opción? o necesariamente debo quedarme con esa opción de "evento default", o necesariamente debo darle otro evento? para que me deje de funcionar como lo ha hecho hasta el momento?

Los botones tienen la propiedad ModalResult que devuelven la respuesta de la ventana modal. Para evitar que interactúen con la ventana pon dicha propiedad a mrNone y luego en el evento OnClick del botón la modificas según tus necesidades.

Por ejemplo:
Un form Form1 que abre una ventana modal mediante un botón Button_CREAR_VENTANA
Código Delphi [-]
procedure TForm1.BitBtn_CREAR_VENTANA_OnClick(Sender: TObject);
var
  Respuesta : TModalResult; //---> para recoger la respuesta de la ventana modal
begin
{ Crear la ventana modal al pulsar el botón }
  Application.CreateForm(TForm2, Form2);
  with Form2 do begin
     { mostramos Form2 y obtenemos la respuesta }
       Respuesta := ShowModal;
     { eliminamos el Form 2}
       Free;
  end;
{ comprobamos que botón se pulsó en la ventana modal }
  if( Respuesta=mrOk ) then begin
    { se pulsó en botón ACEPTAR }
  end else begin
    { se pulsó en botón CANCELAR }
  end;
end;

La ventana modal tiene dos botones:
Button_ACEPTAR que devuelve mrOk o mrYes para aceptar
Button_CANCELAR que devuelve mrCancel para cancelar las entradas

En el evento OnCreate de la ventana modal, modificamos las salidas de los botones:

Código Delphi [-]
procedure TForm2.Form2_OnCreate(Sender: TObject);
begin
{
  modificar el botón de cancelación de resultados
  ===============================================
  generalmente, este resultado no se toca ya que no se desea hacer nada
  al pulsar la tecla "ESC", pero como ejemplo vale.
}
  Button_CANCELAR.ModalResult := mrNone;

{
  modificar el botón de validación de resultados
  ===============================================
}
  Button_ACEPTAR.ModalResult  := mrNone;
end;

El evento del botón para cancelar la salida (al pulsar la tecla "ESC")
Código Delphi [-]
procedure TForm2.Form2_Button_CANCELAR_OnClik(Sender: TObject);
begin
  ModalResult := mrCancel;
end;


El evento del botón para validar la salida
Código Delphi [-]
procedure TForm2.Form2_Button_ACEPTAR_OnClik(Sender: TObject);
begin
{ aquí puede ir una validación de las entradas }

{ devolver el resultado}
  ModalResult := mrOk;
end;

Saludos
Salvica

Última edición por salvica fecha: 07-08-2007 a las 17:40:04.
Responder Con Cita