Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Impedir que un edit obtenga el foco (https://www.clubdelphi.com/foros/showthread.php?t=44849)

FGarcia 16-06-2007 00:44:44

Impedir que un edit obtenga el foco
 
Hola!

Estoy seguro que en los foros ya se trato pero por mas que busque en la 258 hilos que me regreso la busqueda no lo encuentro.:mad: :mad: :mad:

Estoy usando un edit con fondo negro y letras en amarillo cual si fuera un display de x aparato sin embargo necesito que NUNCA tenga el foco, lo mismo sea si le hacen click con el mouse como si usan la tecla tab (tabstop = false) o de cualquier otro modo que se le ocurra al usuario, existente o por descubrir.

No se vale poner el (edit.enabled := False;) pues ya no se aprecia el color de las letras. (Edit.ReadOnly := True;) de cualquier manera al hacer click sobre el edit aparece el cursor e incluso puede seleccionar el texto.

estoy 99.9999999999999999999999 % seguro que alguien aqui tiene la respuesta. Gracias

Caral 16-06-2007 00:54:01

Hola
Si as usado lo dicho, no se me ocurre otra cosa que usar un panel y poner el edit dentro, lo acabo de hacer y funciona.
Saludos

egostar 16-06-2007 01:13:03

Y porque no usas los eventos para cambiar el foco.

Yo lo que haria es poner la propiedad ReadOnly del TEdit en True TabStop en False y en los eventos

Código Delphi [-]
 
procedure TForm1.Edit1Click(Sender: TObject);
begin
  Memo1.Setfocus;
end;
 
procedure TForm1.Edit1DblClick(Sender: TObject);
begin
  Memo1.Setfocus;
end;

procedure TForm1.Edit1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Memo1.Setfocus;
end;

Cambiar el foco a otro objeto.

Salud OS.

Lepe 16-06-2007 01:52:04

¿Tiene que ser forzosamente un Edit?

¿y un label?, colocando un Bevel alrededor y tal con pascual....

vale, ya me callo :p

egostar 16-06-2007 02:01:07

Cita:

Empezado por Lepe
¿Tiene que ser forzosamente un Edit?

¿y un label?, colocando un Bevel alrededor y tal con pascual....

vale, ya me callo :p

Pues si amigo Lepe, es mucho mas fácil que usar el Edit, y el que se queda mudo soy yo.:)

Digo para que complicarse la vida gratis.:D

Salud OS.

seoane 16-06-2007 02:08:54

Pues yo sugeriría el control TStaticText, que creo que se ajusta perfectamente.

egostar 16-06-2007 04:09:11

Bueno, hay alguien mas que de una solución/opción más fácil:confused: :D :D :D

Salud OS.

roman 16-06-2007 05:41:02

Pues yo usaría un panel; porque además de poder jugar con su borde, permite centrar el texto horizontal y verticalmente.

No me refiero al panel con un edit dentro. Sólo el panel.

// Saludos

egostar 16-06-2007 06:00:47

:eek: :o Mejor ya me quedo callado, :D :D :D

Salud OS.

gluglu 16-06-2007 11:25:03

Y por último además de todas las maravillosas soluciones que se han planteado :

Si necesariamente quieres utilizar un Edit, pondrías la propiedad TabStop := False, para que no se pueda seleccionar con el Tabulador, y bastaría con poner otro TLabel con su propiedad Transparent := True y Caption en blanco encima del Edit, de tal manera que ocupe todo el espacio del Edit y por supuesto 'BringToFront' en tiempo de diseño de tal manera que como digo, quede por encima del Edit.

De esta manera es imposible seleccionar el Edit con el ratón.

ClNaU2 ;)

FGarcia 16-06-2007 17:50:49

glu glu:

Salvo que este haciendo algo mal ¡no funciona! El edit siempre queda al frente, no importa si le hago el "BringtoFront" en diseño o en ejecucion. Aun no pruebo la idea del panel pero ya les comentare.



p.d. Para Glu glu: tienes multa! van varios dias que no posteas chistes, bromas ni nada para alegrar la jornada. A tu cuenta en La Taberna!!

EDITO: El panel tiene el mismo problema que un Label, cuando se aplica el XPManifiest no cambia el color de fondo de la misma, solo el del Font. Esa es la razon por la que uso un edit.

gluglu 17-06-2007 10:33:58

Pues tienes razón. Me he equivocado. Utilizo ese truco con otros elementos, pero nunca lo había hecho con un Edit. Y es verdad que el Edit siempre se queda por delante del Label.

Porqué no utilizas entonces un TShape y un TLabel ? El TShape con color en negro y el TLabel encima con color en Amarillo. :p

P.D. Prometo esmerarme en el foro de Humor. :D

FGarcia 18-06-2007 22:13:38

Perfecto (bueno..casi)

Je, si hice lo del Tshape y ya funciona, solo hay un pequeño efecto de parpadeo que ocurre ocasionalmente pero no es nada importante. Gracias!


La franja horaria es GMT +2. Ahora son las 04:41:48.

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