Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-03-2010
sizne sizne is offline
Miembro
 
Registrado: mar 2010
Posts: 104
Poder: 15
sizne Va por buen camino
Invisible Window (Programando con Delphi)

En este momento tengo otro percance.
Me aparece este msj.

Project Pbecarios.exe raised exception class EInvalidOperation with message 'Cannot focus a disabled or invisible window'. Process stopped. Use Step or Run to continue.

Cuando hago click en RUN (F9)aparece el sigte msj.

Cannot focus a disabled or invisible window


Me dice "Invisible window" No comprendo el problema.... por que causa y que es lo que debo hacer? Donde lo activo o lo habilito? POr que me aparece eso?

Gracias!
Responder Con Cita
  #2  
Antiguo 13-03-2010
Avatar de afunez2007
afunez2007 afunez2007 is offline
Miembro
 
Registrado: oct 2007
Ubicación: La Ceiba, Honduras
Posts: 170
Poder: 17
afunez2007 Va por buen camino
Lightbulb

Debes tener un formulario que tiene la propiedad visible=false, o algun componente como un edit o un boton que tiene la propiedad visible=false e intentas hacer un set focus de este mismo

Ve si por alli lo puedes encontrar

Saludos
__________________
Si robas, roba un beso, si mientes que sea por amor y si engañas que sea a la muerte!!
Responder Con Cita
  #3  
Antiguo 13-03-2010
BrunoBsso BrunoBsso is offline
Miembro
 
Registrado: nov 2009
Ubicación: Berisso, Buenos Aires, Argentina
Posts: 239
Poder: 15
BrunoBsso Va por buen camino
Puede ser lo que comenta el agmigo afunez2007 (en el diseño del form) y también puede ser que en el evento OnCreate del formulario estés poniendo en false la propiedad visible, o que en ese mismo evento uses el método Hide.
Fijate esas cosas.
Si vos querés que tu ventana sea invisible al momento de crearse, pone su propiedad AlphaBlend en TRUE y su propiedad AlphaBelndValue en 0 mientras lo estás diseñando.
Saludos.
Responder Con Cita
  #4  
Antiguo 13-03-2010
sizne sizne is offline
Miembro
 
Registrado: mar 2010
Posts: 104
Poder: 15
sizne Va por buen camino
Me explico, tengo dos Form1 uno es Fprincipal del cual me dirijo a varios formularios. Al q me dirijo es Fregistro. Lo que realizo es lo sigte.
procedure TFprincipal.RegSolicitudClick(Sender: TObject);
begin
Fprincipal.Enabled:=false;
Fregistro.Show;
end;

Luego, estoy en Fregistro donde tengo los campos respectivos(cabe mencionar q los campos las extraje de una tabla q fueron realizadas en SQL Server 2000). En cuanto hago click en el boton "NUEVO", osea aumento un nuevo registro. Me aparece el sigte msj.

Project Pbecarios.exe raised exception class EvarianTypeCastError with message 'Could not convert variant of type (Null) into type ('Double')'. Process stopped. Use Step or Run to continue.
Cuando hago click en RUN o F9 aparece:
Could not convert variant type (Null) into type (Double).
Siendo el código el sigte:

procedure TFRegSolicitud.NuevoEClick(Sender: TObject);
var c:integer;
begin
with DataModule do
begin
if Tregistro.RecordCount=0 then
c:=1
else
c:=Tregistro.RecordCount+1;
end;
DM.Tregistro.Last;
DM.Tregistro.Insert;
DM.Tregistro['IdE']:=c;
DM.Tregistro['NumReg']:='EB-000'+IntToStr(c);
Edit1.Text:=' ';
end;


El campo IdE por si acaso es la llave tipo integer, NumReg tipo de dato string.Al regresa al Fprincipal coloco lo sigte:
procedure TFRegSolicitud.VolverEClick(Sender: TObject);
begin
Fprincipal.Show;
Fprincipal.Enabled:=true;
FregSolicitud.Close;
end;

Y la me fije si algun dato esta invisible del Form Registro y todos estan en true.
Gracias
Responder Con Cita
  #5  
Antiguo 13-03-2010
BrunoBsso BrunoBsso is offline
Miembro
 
Registrado: nov 2009
Ubicación: Berisso, Buenos Aires, Argentina
Posts: 239
Poder: 15
BrunoBsso Va por buen camino
Hola.
Leete como usar etiquetas por el bien de todos.
Empecemos.
En tu primer trozo de código estás haciendo algo innecesario.
Me refiero a
Código Delphi [-]
procedure TFprincipal.RegSolicitudClick(Sender: TObject);
begin
  Fprincipal.Enabled:=false;
  Fregistro.Show;
end;
Mejor borrá esas 2 líneas y poné solamente FRegistro.ShowModal;
Sigamos.
En el evento OnCLick de NuevoE Esto es innecesario también, mirá
Código Delphi [-]
if Tregistro.RecordCount=0 then
  c:=1
else
  c:=Tregistro.RecordCount+1;
Te explico. Si RecordCount toma el valor 0, vos querés ponerle 1 ¿cierto? Bueno, ¿1 no es igual a RecordCount (que valdría 0) + 1?
Entonces, solamente dejá a c:=Tregistro.RecordCount+1 y listo.
En lo demás de ese evento, no veo error porque no conozco la tabla y no sé dónde te corta la ejecución con el error.

Por último, en el evento OnClick del botón VolverE no deberías hacer ese código.
Más simple, ponelo así
Código Delphi [-]
procedure TFRegSolicitud.VolverEClick(Sender: TObject);
begin
  Close;
end;
Yo necesitaría más datos de la tabla para encontrar el error. Pero seguramente los que manejan muy bien bases de datos te lo encuentren así nomás.
Saludos.
Responder Con Cita
  #6  
Antiguo 13-03-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Con respecto al primer error que mencionas "Cannot focus a disabled or invisible window" coincido con afunez. Estas dandole el foco a algun control no creado todavia ,o sea que casi con seguridad lo haces en el evento OnCreate de FRegistro. Empieza a revisar por allí.

Segundo punto; es buena norma no-auto crear los forms ya que aunque, la memoria es económica y de muchos Gb, no es ilimitada.
Desde la barra de menú del editor de delphi, realiza lo siguiente: Project -> Options y quita FRegistro de "auto-create forms", luego usa este código:
Código:
procedure TPrincipal.RegSolicitudClick(Sender: TObject);
begin
    with TRegistro.Create(Application) do
    try
      ShowModal;
    finally
      Free;
    end;
end;
Espero ayudarte en algo, sobre el error SQL server nunca lo he usado. Prueba un nuevo hilo en el foro SQL.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 15-03-2010
sizne sizne is offline
Miembro
 
Registrado: mar 2010
Posts: 104
Poder: 15
sizne Va por buen camino
Gracias amigos de ClubDelphi.

Estoy usando ShowModal y no tengo problemas.!

Gracias!!!1
Responder Con Cita
  #8  
Antiguo 15-03-2010
BrunoBsso BrunoBsso is offline
Miembro
 
Registrado: nov 2009
Ubicación: Berisso, Buenos Aires, Argentina
Posts: 239
Poder: 15
BrunoBsso Va por buen camino
De nada
Suerte en tu proyecto!!!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Programando con Delphi, error en type, maskedit sizne OOP 0 11-03-2010 07:27:44
estilo window vista y delphi 2006 miguel_e Varios 13 04-06-2008 21:21:20
Signos de que pasas mucho tiempo en Delphi o programando ContraVeneno La Taberna 28 20-02-2008 21:39:27
cannot focus a disabed or invisible window en creación de formulario OlmoJorge Varios 2 07-11-2006 15:45:56
Cannot focus a disabled or invisible window TONIAM Varios 3 02-03-2005 17:29:04


La franja horaria es GMT +2. Ahora son las 18:48:17.


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
Copyright 1996-2007 Club Delphi