PDA

Ver la Versión Completa : cannot focus a disabed or invisible window en creación de formulario


OlmoJorge
07-11-2006, 13:57:15
Hola
Tengo un formulario con un page control con 3 tabsheets. Todo bien, pero acabo de insertar un panel en un tabsheet, y me parece, me parece que algo he debido tocar en alguna propiedad sin darme cuenta, que ahora en la creación del formulario (no en el método OnCreate). Si no en esta primera línea del with:


With TFFichaContacto.Create(Application) do
try
Tag := 999;
ShowModal;
finally
Free;
end;


Me da 4 veces 4 el error "cannot focus a disabed or invisible window".
No llego ni al OnCreate ni OnActivate ni OnShow...
He mirado toooodos los Enabled y visible = False, y no parecen ir por ahí los tiros. He buscado TabVisible y TabEnable y también estan correctas...
Por favor, cualquier ayuda será inestimable.
Muchas gracias de antemano

reina
07-11-2006, 15:45:33
Hola! ese error es porque le estan dando foco..algun componente de alguna page que no esta activa.
Fijate si no haces algun setFocus por ahi...:rolleyes:

salu22

OlmoJorge
07-11-2006, 15:45:56
Hola
He encontrado la respuesta!!:D

Resulta que si tienes programados eventos OnChange en componentes enganchados a la BdD, debes asegurarte antes de hacer cualquier acción, de que el DataSet está en edición. De no ser así, da este error.
En mi caso tenía esto:


procedure TFFichaContacto.spP08_VD_02Change(Sender: TObject);
begin
CompruebaP08_01;
end;


spP08_VD_02Change es un SpinEdit contra la BdD.
Pues basta con hacer esto:

procedure TFFichaContacto.spP08_VD_02Change(Sender: TObject);
begin
if not (DMConexion.qCliente.State in dsEditModes) then exit;
CompruebaP08_01;
end;


Saludos. Jorge