FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Clic a un tbutton y que no se quede el foco
Seguramente debe ser muy fácil, pero no lo consigo. He probado jugando con las propiedades: tabstop, taborder, setfocus. Esta última cuando quiero fijar el foco en un objeto, al compilar me dice "Cannot focus a disabled or invisible window"... (esto último me tiene un poco mosca) y bueno es verdad que tengo algun panel desactivado y algún otro invisible, pero lo he probado con todo activado y visible y sigue con el dichoso error.
Si alguien me puede guiar para seguir investigando y probando se lo agradezco. Gracias. |
#2
|
||||
|
||||
Saludos
Utiliza el componetne SpeedButton en la paleta Additional, este no toma el foco
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
#3
|
||||
|
||||
Hola,
¿Pero el "foco" tendrá que estar en algún sitio no? A mí se me ocurre -independientemente de que no vea del todo claro para qué perseguir algo así- aprovechar el evento "OnClick" del botón para darle en ese momento el foco a otro componente. Debería funcionarte. No me importaría conocer el motivo que te lleve a obrar de ese modo. Por otro lado el efecto que se aprecia haciendo lo que te digo no me convence tampoco: el botón obtiene, efectivamente, el foco, y esto se aprecia, pero, automáticamente, el foco pasa a otro componente... ¡menudo lío! ¿A ti qué te parece? Se me ocurre que lo que quieras es que, sin más, el botón no tome el "foco" de ninguna de las maneras... si es así tal vez podría hacerse de otras maneras, pero, se me ocurre a bote pronto que simules un botón con un "TPanel", ya que este (si no me confundo) no toma el "foco" del usuario. |
#4
|
||||
|
||||
Cita:
Hasta Luego -
__________________
No todo es como parece ser... |
#5
|
||||
|
||||
Hola,
Cita:
|
#6
|
||||
|
||||
Cita:
// Saludos |
#7
|
||||
|
||||
Hola,
Cita:
|
#8
|
||||
|
||||
Saludos
Cita:
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
#9
|
||||
|
||||
Saludos
Cita:
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
#10
|
|||
|
|||
que burro!! no he caído en el speedbutton!. Esque a veces te ciegas en algo y no ves lo de alrededor. Bueno esto me quita el problema que planteaba. pero...
¿y si no quisiera ver el foco por ninguna parte, o bien dejarlo en algún sitio y que no se mueva? ¿tengo que poner los taborder a 0 y los tabstop a false, a todo lo demas? Lo siento si parece una chorrada lo que persigo, pero biene a ser que no quiero foco en mi formulario, y si tiene que estar, que no se mueva. cosa que con el setfocus no me está tragando, pero estoy revisando los paneles como me aconsejó lucasarts_18. Muchas gracias por las respuestas. me he quedado sorprendido de la rapidez y la atención. |
#11
|
||||
|
||||
Hola,
Cita:
Cita:
Lo que me parece un tanto ilógico es lo siguiente: los controles no solamente pueden tomar el foco, sino que deben hacerlo, porque el usuario tenga conocimiento de en qué control se encuentra el foco, valga la redundancia, si vale. Quiero decir que a bote pronto se me ocurre que un formulario en el que no pudiera estar el foco en otro sitio que en el propio formulario sería un formulario... sin controles. Otra cosa sería "ocultar el cursor" de un "TEdit", por ejemplo, de manera que, aun teniendo el foco dicho "TEdit" no se viera el cursor, que es, precisamente, lo que señala que ese "TEdit" en concreto tiene el foco del usuario (¿Será electricista el usuario y se dedicará a ir poniendo focos en escenarios de fiestas, comuniones y bautizos?) en ese momento. Esta última cuestión se ha tocado hoy mismo en estos Foros. Quizá te diera alguna idea el Hilo en que se llevó a cabo. |
#12
|
||||
|
||||
La verdad a mi me intriga demasiado el saber porque no quieres que se vea el foco en tu formulario.
¿Puedo preguntar proqué no quieres ver el foco en el formulario? Tal vez a alguien se le ocurra la forma de hacerlos si nos explicas proque no quieres ver el foco en el formulario.
__________________
|
#13
|
|||
|
|||
es una mera cuestión estética, no quiero que se vea el foco en ningun lugar (salvo en el edit si hace falta. y lo de ocultar el cursor es genial, ya lo leí buscando información antes de postear).
Os habeis fijado en la calculadora de windows? el foco no se ve por ningún lugar, tan simple y tan bien hecha, es genial. Aunque como dice dec talvez si que se le puede llamar formulario sin controles, o descontrolado |
#14
|
|||
|
|||
y poque demonios no puedo hacer un setfocus teniendo un panel desactivado (no al que le doy el focus)?? o invisible.
|
#15
|
||||
|
||||
El punto es:
No existe ninguna razón lógica para ponerle el foco a un control que esta desactivado o invisible. supongo que por eso no puedes ponerle el foco a un control que esta desactivado o invisible. Revisa muy bien las propiedades del control cuando le pasas el foco, ya que si el control esta activado y visible, no debe tener ningún problema en recibir el foco. Toma en cuenta que si desactivas un Group Panel, ningúno de los controles contenidos en el mismo podrán recibir el foco.
__________________
|
#16
|
|||
|
|||
Revisando me he dado cuenta que deshabilitaba un panel por codigo y luego intentaba pasar el foco a un elemento dentro de este.
Pero ahora lo que no entiendo es porqué me dice "cannot focus a disabled or invisible window" si ago lo siguiente. (y no hay nada más, un form, un edit, y el procedure de aquí abajo):
En cambio si quito el formcreate y pongo porejemplo un botón que me asigna el foco al edit cuando clico, logicamente no me da el error.(pero el edit y el form son los mismos)
Claro que alomejor es que en el formcreate aún no se ha creado el edit y claro, ¿a quien le va a enviar el foco? .... Creo que me quedan muchas horas de delphi por delante jejeje Última edición por niñotaliban fecha: 18-11-2005 a las 01:36:58. |
#17
|
||||
|
||||
Pues asi como dices. Cuando intentas asignar el foco, todavia el edit no esta creado, ponlo en otro evento(OnShow o OnActive), o mejor aun pon su propieda TabOrder en 0 y evitas poner codigo
Saludos
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
#18
|
||||
|
||||
Hola,
Cita:
Cita:
|
#19
|
||||
|
||||
Cita:
En realidad cuando llega el evento OnCreate, todos los componentes de la ventana si están creados, de hecho, puedes usar Edit1.Text := 'bla bla'. El Edit, como su Form, están ocultos, (invisibles), de ahí el mensaje. saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#20
|
||||
|
||||
Saludos
Cita:
Ok, es verdad lo que dices!, Gracias por la correccion
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
|
|
|