Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   El cursor no aparece hasta teclear algo. (https://www.clubdelphi.com/foros/showthread.php?t=72439)

Casimiro Noteví 18-02-2011 16:39:36

El cursor no aparece hasta teclear algo.
 
Hola, últimamente estoy teniendo un problemita que nunca me había ocurrido y no sé por qué sucede, lo explico:
Desde un formulario abro otro formulario en el que hay componentes variados para petición de datos, pueden ser TEdt, TDBedit, etc. Lo normal es que el cursor se posicione en el primer componente que pueda tener el foco según el orden de los 'tabs', que se salte los que tengan tabstop a false, los enabled a false, etc. cosas normales. Pues bien, el problema es que el cursor no aparece en ningún sitio, sin embargo si tecleo sí lo hace correctamente en el componente que tiene el foco.
He probado a poner componentetal.setfocus en el create, show y activate. Tienen el foco porque puedo teclear en ellos directamente, pero no aparece el cursor hasta que pulso alguna tecla.
Par estar seguro de quién tiene el foco probé a poner un timer que cada segundo me escribe en el título del form el nombre del mismo y es correcto, o sea, abro el formulario y en el título aparece algo asi como: dbeCodigoFactura y si tecleo, efectivamente, aparece lo tecleado en pantalla y por fin aparece el cursor.
En algunas ocasiones he visto que si pongo un timer con un retardo al entrar al formulario, al cabo de unos segundo termina por aparecer el cursor, pero en las últimas pruebas que he hecho tampoco sale.
En fin, que ni idea, el caso es que no es problema grave, pero claro, el usuario va a decir ¿y el cursor?, ¿dónde escribo?, nada bueno eso.
Y como me han dicho que en estos foros hay gente que sabe mucho, pues a ver si alguien ha tenido este contratiempo alguna vez y sabe a qué puede ser debido.

newtron 18-02-2011 17:06:04

A mi me pasa lo mismo en algunas circunstancias pero no he podido resolverlo tampoco.

Te acompaño en la espera :D

roman 18-02-2011 17:16:21

Yo he notado este comportamiento en Windows Vista y lo he asociado más con el S.O que con Delphi.

// Saludos

Casimiro Noteví 18-02-2011 17:20:20

Pues las pruebas han sido sobre winXP con delphi 2007. No sé si será algún problema de esa versión, ya digo, nunca antes me había pasado con ninguna versión del sistema ni del delphi.
Nunca he usado delphi en un 'vista' ni en un 'siete' :)

DarkMan 18-02-2011 19:44:18

Cita:

Empezado por Casimiro Notevi (Mensaje 391360)
pues a ver si alguien ha tenido este contratiempo alguna vez y sabe a qué puede ser debido.

Como creo que permites o pides conjeturas, se me ocurre que el problema pueda ser de algún otro programa, tal vez el antivirus, que esté jugando con focos y manejadores.

No sé, tal vez debieras comprobarlo.

Un saludo.

Luis M. 18-02-2011 20:03:58

Hola.
Pues yo también me encuentro en la misma situación.
Trabajo con D2007 y S.O. XP
Para disimularlo un poco y que el usuario no se encuentre un poco perdido,
le cambio el color al componente (clAqua) cundo tiene el foco y (clWindows) cuando pierde el foco.
Un saludo.

Chris 18-02-2011 20:53:26

Has probado con la propiedad ActiveControl del formulario? También puede ser que el formulario se esté activando de alguna extraña manera. No digo que seas tú que lo hagas, sino que la combinación de propiedades y código de por este pequeño inconveniente.

Saludos,
Chris

Casimiro Noteví 18-02-2011 21:59:48

Cita:

Empezado por DarkMan (Mensaje 391389)
Como creo que permites o pides conjeturas, se me ocurre que el problema pueda ser de algún otro programa, tal vez el antivirus, que esté jugando con focos y manejadores.
No sé, tal vez debieras comprobarlo.
Un saludo.

Sí, lo he probado sin ningún antivirus y no tengo más programas funcionando.

Cita:

Empezado por Luis M. (Mensaje 391394)
Hola.
Pues yo también me encuentro en la misma situación.
Trabajo con D2007 y S.O. XP
Para disimularlo un poco y que el usuario no se encuentre un poco perdido,
le cambio el color al componente (clAqua) cundo tiene el foco y (clWindows) cuando pierde el foco.
Un saludo.

Esa solución es la que había pensado, pero tendría que cambiarlo en todo el programa y no sé si meterme en esos "berenjenales".

Cita:

Empezado por Chris (Mensaje 391398)
Has probado con la propiedad ActiveControl del formulario? También puede ser que el formulario se esté activando de alguna extraña manera. No digo que seas tú que lo hagas, sino que la combinación de propiedades y código de por este pequeño inconveniente.
Saludos,
Chris

Sí, el activecontrol tiene el componente correcto, ya digo, se puede teclear y aparece en el control oportuno, el "único" problema es que no aparece el cursor hasta que se pulsa alguna tecla.
Lo que me extraña mucho es que ocurra en algunas ventanas/formularios y en otras no, cuando todas heredan de la misma "plantilla" que uso, un simple form con un panel y una toolbar con 2 botones, aceptar y salir.

Al González 18-02-2011 22:19:17

Para ayudar a la estadística, a mí me ha sucedido sobre Windows XP en aplicaciones compiladas con Delphi 7.

ecfisa 18-02-2011 22:26:58

Hola Casimiro.

Nunca me sucedió, pero si el problema se soluciona presionando una tecla... ¿ Que tal esta chapuzeada ?

Código Delphi [-]
procedure TForm1.FormActivate(Sender: TObject);
begin 
 // Cualquier tecla que no tenga consecuencias... 
 keybd_event(VK_LCONTROL,0,0,0);
 keybd_event(VK_LCONTROL,0,2,0);
end;

Un saludo.

Casimiro Noteví 19-02-2011 00:16:09

Sí, también he probado a simular pulsaciones de teclas... y pasar el foco al siguiente y volver al anterior... y varias "chapuzas" más, pero nada.


La franja horaria es GMT +2. Ahora son las 12:21:11.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi