FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Mensaje de error al ejecutar el programa
hola, tengo problemas para ejecutar un programa, cuando lo quiero correr me sale este mensaje de error:
project proyecto1.exe raised exception class EInvalid Operation with message 'cannot focus a disabled or invisible window'. Process stopped. El codigo del programa es este:
No sé cual es el problema, me gustaria que me ayudaran Muchas gracias Última edición por marcoszorrilla fecha: 18-11-2004 a las 23:10:49. Razón: Añadir la etiqueta Delphi |
#2
|
||||
|
||||
Puede que sea dificil de descubrir el problema, como tambien puede que sea facil, en otras palabras...
Yo le apostaria a que es el Edit.SetFocus que tienes en el OnCreate de la forma, Incluso tambien podrian ser las otras dos lineas... No se pude garantizar que estos objetos esten creados cuando sea "Disparado" el evento OnCreate. Una solución podria ser poner las 3 lineas el el evento OnShow. Espero te sirva
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#3
|
|||
|
|||
ListBox1.Items.Add(Edit1.Text);
hola gracias por responder, efectivamente hace rato comenté las lineas de Edit1.SetFocus; y ya funcionó pero ahora quiero que lo que escriba en el edit se vea en el list box y eso es con esta linea :
ListBox1.Items.Add(Edit1.Text); pero nada, no se ve y en eso estoy ahorita, si me puedes ayudar te lo agradeceria mucho y si no, de todos modos gracias por el tiempo |
#4
|
||||
|
||||
Y donde tienes este codigo?
Esque asi deberia funcionar pero deberia estar dentro de algun evento o algun otro metodo llamarlo o algo asi...
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#5
|
|||
|
|||
aqui esta el procedimiento
ah es que esta en el codigo grandote que esta en el primer mensaje, mira el procedimiento es este:
procedure TForm1.Button1Click(Sender: TObject); begin if Edit1.Text<>' ' then {Garantiza que hay algo escrito} begin Agregar(Edit1.Text); ListBox1.Items.Add(Edit1.Text); //esta es la linea Edit1.Clear; //Edit1.SetFocus; end; end; y asi como esta no funciona, en el formulario esta un edit, un list box y tres botones, el usuario escribe algo en el edit y oprime el button1, entonces lo que escribio debe verse en el list box, ahora, no sé si debe referenciar algo en los eventos del list box o del edit del object inspector pero como que no se me hace, la verdad no se mucho de delphi ni de pascal... gracias |
#6
|
|||
|
|||
ya
hola, comenté estas lineas:
procedure TForm1.FormCreate(Sender: TObject); begin //ListBox1.Clear; //Edit1.Clear; //Edit1.SetFocus; end; ya se resolvio el problema pero no entiendo porqué... al comentar esas lineas lo que escribo en el edit ya se ve en el listbox... |
#7
|
||||
|
||||
No son acaso esas las tres lineas que te recomende que quitaras en mi anterior Post?
Cita:
Cita:
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#8
|
||||
|
||||
Cita:
También hago la observación de que en principio, las sentencias ListBox1.Clear y Edit1.Clear son innecesarias en el evento OnCreate. La única forma de que tengan datos previos es que no hayan sido borrados durante el diseño. Y para puntualizar un poco, respecto de este comentario Cita:
Antiguamente (Delphi <= 3) el evento OnCreate se lanzaba desde el mismo constructor del formulario pero ahora se lanza desde el método AfterConstruction que se ejecuta una vez que se ha terminado completamente la construcción del formulario- y por tanto de todas sus subcomponentes. Lo que sucedió en este caso, es que el formulario- si bien ya construído -aún no es visible y por ello, cambios de foco como Edit1.SetFocus deben hacerse en el evento OnShow que ocurre después de que el formulario se ha hecho visible. // Saludos |
|
|
|