Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Error con ShowModal (https://www.clubdelphi.com/foros/showthread.php?t=22017)

el_barto 03-06-2005 19:12:51

Error con ShowModal
 
Muchacho muy buenos dias

tengo un pequeño pero molesto inconveniente, estoy usando la instruccion:

Cita:

if Form3.ShowModal = mrOk then
begin
form3.Free;
Application.CreateForm(TForm1, Form1);
Application.Run;
end;


pero me saca un error que dice:

[Error] Project1.dpr(15): Undeclared identifier: 'mrOk'

la sintaxis esta bien y no encuentro el motivo del error, pueden ustedes ayudarme, muchas gracias :cool:

dec 03-06-2005 19:41:14

Hola,

Prueba a añadir la unidad "Controls" en la cláusula "Uses" oportuna.

El error estriba en que es en la referida unidad en donde se declara la constante "mrOK".

vtdeleon 04-06-2005 01:09:39

Saludos

No estoy muy seguro, pero creo que puedes usar IdOk en vez de MrOk y asi no agregar la unidad

Juanmi_pro 04-06-2005 01:18:50

no no noo, e asii
 
Amos a ver..no t reconoce MROk sencillamente pq no es un valor de showmodal, sino de modalresult. La propiedad del formulario es modalresult, asi:

form3.modalresult = MrOk

Saludos,Juanmi

vtdeleon 04-06-2005 01:25:23

Saludos.
Cita:

Empezado por Juanmi_pro
Amos a ver..no t reconoce MROk sencillamente pq no es un valor de showmodal, sino de modalresult. La propiedad del formulario es modalresult, asi:
form3.modalresult = MrOk

La sintaxis de el_barto está correcta. Esta llama el form3 en forma modal y si el form3 devuelve un valor mrOk (o IdOk) creará el formulario Form1.

Para mi es 100% funcional, aunque creo que no es necesario tener Form3.free ya que se cierra sola.:confused:

dec 04-06-2005 03:48:33

Hola,

Tienes razón vtdeleon: podría usar "IdOk" y no añadir la unidad "Controls", pero, habría entonces de añadir la unidad "Windows", que es donde está la constante "IdOk".

En cuanto a lo de liberar el "Form3", debe ser porque no vuelva a hacerse uso de ese formulario. Digo yo...

Lepe 04-06-2005 11:15:24

Cita:

Empezado por vtdeleon
aunque creo que no es necesario tener Form3.free ya que se cierra sola.:confused:

Código Delphi [-]
procedure TCustomForm.CloseModal;
var
  CloseAction: TCloseAction;
begin
  try
    CloseAction := caNone;
    if CloseQuery then
    begin
      CloseAction := caHide;
      DoClose(CloseAction);
    end;
    case CloseAction of
      caNone: ModalResult := 0;
      caFree: Release;
    end;
  except
    ModalResult := 0;
    Application.HandleException(Self);
  end;
end;

En principio, al cerrar una ventana modal se oculta, a menos que se haya especificado en el OnClose: action := cafree; esto se verifica en el DoClose(var Action:TcloseAction)

Un saludo

vtdeleon 04-06-2005 17:51:44

Saludos
Cita:

Empezado por Lepe
En principio, al cerrar una ventana modal se oculta, a menos que se haya especificado en el OnClose: action := cafree; esto se verifica en el DoClose(var Action:TcloseAction)

Gracias por la Aclaracion;)


La franja horaria es GMT +2. Ahora son las 09:40:15.

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