FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Modo inserción en un TDBEdit
Hola Amigos !
Por qué al entrar en el TDBEdit el modo de edición es siempre "inserción", es decir, como si la tecla Insert estuviera siempre activa. No existe la manera de sobreescribir el texto ya existente taly como se vaya introduciendo por el teclado? Hay alguna manera de cambiar esto? Gracias. |
#2
|
||||
|
||||
Pues a mi me sucede lo contrario, pues por mas que presiono la tecla insert nunca puedo poner el estado en sobreescribir. En un principio pense que se debia a una diferencia entre un insert o un append al Tdataset pero hice la prueba y se me comportaba igual.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#3
|
||||
|
||||
No es lo contrario lo que te sucede a tí, es lo mismo. Yo no puedo cambiar al modo "sobreescribir", siempre lo que hace es insertarme el texto en la posición del cursor. Lo que yo precisamente quiero es que se me active el modeo "sobreescribir".
|
#4
|
||||
|
||||
Cita:
Hasta donde yo sé, el modo de inserción o sobreescritura no es algo que venga por defecto en los controles de edición y sólo algunos, como el RichEdit lo implementan. // Saludos |
#5
|
||||
|
||||
mmm, que pena, es evidente que entendi mal la pregunta...
La verdad esque para mi es una pregunta muy curiosa pues nunca he necesitado algo parecido, de hecho, nunca me habia fijado en este detalle... Pues tampoco lo puede hacer un TEdit normal, y si lo hago en cualquier otra parte tampoco, por ejemplo, si se hace en la barra de direcciones del explorador no funciona, tampoco en el cuadro de edicion del ejecutar... ni en ninguna otra parte semejante a un TEdit normal. A lo mejor exista una solucion mas elegante pero por lo pronto yo de ti, reemplazaria el TDBEdit por un TRichEdit que si acepta dicho comportamiento (Claro que haciendolo parecer un TDbEdit comun y corriente). Bueno, espero que te sirva de algo, por lo menos mientras que alguien te da una idea mejor...
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ Última edición por jhonny fecha: 14-09-2004 a las 19:52:52. |
#7
|
||||
|
||||
Pues, la verdad es que he probado mil una veces esta parte de códgo que añado más abajo, y no entiendo porqué no me funciona.
Con el debuger veo que al intentar dar el valor 1 a SetLength, Delphi no lo ejecuta y me lo sigue dejando a 0. He probado con SelectAll y sí que me funciona, es decir, cada vez que pulso una tecla me borra todo el texto ya escrito previamente. No lo entiendo!!? Ayuda, por favor!!! Gracias procedure TMaster.FormKeyPress(Sender: TObject; var Key: Char); begin If Key = #13 Then Begin If HiWord(GetKeyState(VK_SHIFT)) <> 0 then SelectNext(Sender as TWinControl, False, True ) else SelectNext(Sender as TWinControl, True, True ); Key := #0; end; If Odd(GetKeyState(VK_INSERT)) Then With TDBEdit(Sender) Do If SelLength = 0 then Case Key of ' '..#126, #128..#255: begin SelLength := 1; If (SelLength > 0) and (SelText[1] = #13) then SelLength := 2; end; end; end; |
|
|
|