Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Lazarus, FreePascal, Kylix, etc. (https://www.clubdelphi.com/foros/forumdisplay.php?f=14)
-   -   bloquear formulario activo (https://www.clubdelphi.com/foros/showthread.php?t=90914)

anubis 07-10-2016 06:22:37

bloquear formulario activo
 
Buenas de nuevo,

Cometi el error de usar un contenedor (panel) para mostrar los formularios en el mismo para que parecieran mas bonitos y no pareciera que eran ajenos al formulario principal a la vez que se pudieran abrir varios formularios

Código Delphi [-]
procedure TPrincipal.tbutton_proveedoresClick(Sender: TObject);
begin
  if not assigned(fproveedores) then
   begin
   fproveedores:=tfproveedores.Create(application);
   fproveedores.Parent:=contenedor;
   fproveedores.Show;
   fproveedores.setfocus;
   end;
end;

Esto ha provocado que los campos tedit no dejen escribir en ellos aunque les ponga la opcion setfocus.

Existe alguna manera de bloquear dicho formulario para evitar que, si estoy haciendo insert o edit, se mantenga en dicho formulario sin poder pasar a otro?. Es decir, aunque tenga la propiedad show, dejar el formulario activo ?. Tendria que volver a los origenes y dejar los formularios como los tenia incialmente, con el showmodal.:(.

saludos y gracias

dec 07-10-2016 13:46:31

1 Archivos Adjunto(s)
Hola,

Echa un vistazo al ejemplo que adjunto a ver si puede servirte de algo. ;)

anubis 07-10-2016 18:13:01

Gracias por responder.

Ya lo habia probado, el problema surge si me paso a otro modulo y me regreso. Tendria que poner en el form.activate, otro setfocus, pero no funciona.

La idea, debido a que tengo varios edit y dbedit, es que todo el control se quede en el formulario, como si fuera un showmodal.

No se si algo parecido se pudiera hacer, en base a tenerlo activo.

gracias de nuevo

dec 07-10-2016 18:18:37

Hola,

Así a bote pronto se me ocurre que podemos deshabilitar todos los formularios excepto el que tenga el foco. Pero claro, esto se dice así a bote pronto...

anubis 07-10-2016 18:32:24

gracias.
Si, quiza el que mas interesa es deshabilitar el principal pero, por razones obvias, te quedas sin los que dependan de el. Ya lo probe :(.
Si no le encuentro forma, tendre que volver al showmodal de siempre.
Interesante si es deshabilitar el resto de formularios sobretodo cuando se esten haciendo insert o edit.

anubis 20-01-2017 05:27:54

Bueno, como complemento os dire que, a lo comentado por dec, lo que hice fue asignar un setfocus a cada click de mouse en los tedit que tenia a mano. Asi si funciona.
Lo que no me funciona bien, pero lo arreglare de alguna forma es en:

Código Delphi [-]
if not assigned(fagregausuario) then
     begin
    fagregausuario:=tfagregausuario.Create(application);
    fagregausuario.codigo:=codigo;
    fagregausuario.Parent:=contenedor;
   fagregausuario.Show;
     end;

Al hacer eso, no me pasa codigo a fagregausuario.codigo, ni tampoco se activa el onactivate del formulario. En cambio, si lo dejo como showmodal, si trabaja bien.

Seguire investigando.

anubis 20-01-2017 06:38:07

No puedo editar el mensaje :(.

Añadiré que si me trabaja bien usando el evento onshow.


La franja horaria es GMT +2. Ahora son las 18:24:38.

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