Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Modo inserción en un TDBEdit (https://www.clubdelphi.com/foros/showthread.php?t=14252)

gluglu 14-09-2004 19:09:04

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?
:confused:
Gracias.

jhonny 14-09-2004 19:23:33

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.

gluglu 14-09-2004 19:33:35

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".

roman 14-09-2004 19:37:32

Cita:

Empezado por jhonny
Pues a mi me sucede lo contrario, pues por mas que presiono la tecla insert nunca puedo poner el estado en sobreescribir.

¿Cómo está la cosa? ¿Pues que no es lo mismo que describe gluglu?

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

jhonny 14-09-2004 19:50:15

mmm, que pena, es evidente que entendi mal la pregunta... :o

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...

roman 14-09-2004 19:53:43

Cita:

Empezado por jhonny
Bueno, espero que te sirva de algo, por lo menos mientras que alguien te da una idea mejor...

Aquí hay una de Peter Below (TeamB)

// Saludos

gluglu 15-09-2004 15:54:41

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!!? :confused:

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;


La franja horaria es GMT +2. Ahora son las 05:16:02.

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