Hola,
pockelsm3!
Cuando haces el llamado de
Form.ShowModal, el formulario se muestra, te permite interactuar con este y al finalizar también permite obtener el resultado la ventana Modal.
Las ventanas Modal pueden
devolver una respuesta que representa una acción a tomar en tu aplicación. Entre las mas comunes
mrOk y mrCancel que por lo general se muestran como botones de Aceptar y Cancelar. La forma más fácil de asignar esa respuesta está en las mismas propiedades del TButton que elegirás para el Aceptar o el Cancelar.
En el siguiente ejemplo, se evaluará que al presionar el botón llame
EjecutarAlgo. Si cierra el formulario o presiona cancelar no hace el llamado de
EjecutarAlgo
Código Delphi
[-]
procedure Form1.Button1Click(Sender: TObject);
begin
if frmDevSelect.ShowModal = mrOk then
EjecutarAlgo;
end;
En el siguiente ejemplo, se validan muchas mas acciones
Código Delphi
[-]
procedure Form1.Button1Click(Sender: TObject);
begin
case frmDevSelect.ShowModal of
mrOk: EjecutarOk;
mrYes: EjecutarYes;
mrNo: EjecutarNo;
end;
end;
Como recomendación, el formulario modal debe crearse y liberarse de inmediato. Recuperando los valores necesarios antes de liberar el formulario.
Código Delphi
[-]
procedure TfrmSalesReturn.ebtnFacturaPropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
var
frmDevSelect: TfrmDevSelect;
begin
inherited;
if DevTableCUSTCODE.Value <> '' then
begin
frmDevSelect := TfrmDevSelect.Create(Application);
try
frmDevSelect.FiltrarCliente(DevTableCUSTCODE.Value);
if frmDevSelect.ShowModal = mrOk then
begin
end;
finally
frmDevSelect.Free;
end;
end
else ShowMessage('Debe seleccionar un cliente');
end;