Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Cómo posicionar el cursor al final del texto de una celda de un dbgrid (https://www.clubdelphi.com/foros/showthread.php?t=75562)

Casimiro Notevi 02-09-2011 11:48:05

Cómo posicionar el cursor al final del texto de una celda de un dbgrid
 
Algo similar a lo que se puede hacer con un TEdit.SelStart

Código Delphi [-]
edit1.SelStart := length(edit1.text);

Porque simulando la tecla F2 con keybd_event(VK_F2, 0, 0, 0) se queda seleccionado todo el texto y si se pulsa una tecla entonces desaparece lo que había escrito.
Se trata de posicionar el cursor al final del texto.

ecfisa 02-09-2011 12:42:11

Hola Casimiro.

Creo que esto te va a funcionar:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  with DBGrid1 do
  begin
    SetFocus;
    EditorMode:= True;
    Perform(EM_SCROLLCARET, 0, 0);
  end;
end;

Un mañanero saludo. :)

Casimiro Notevi 02-09-2011 13:47:41

Gracias, amigo, aunque así no me funciona, simplemente no hace nada :confused:

Buscando y buscando he encontrado esto, que de momento sí me está funcionando:

Código Delphi [-]
keybd_event(VK_F2, 0, 0, 0);
keybd_event(VK_F2, 0, KEYEVENTF_KEYUP, 0);

ecfisa 02-09-2011 14:21:31

Hola.

Ahora veo que funciona desde el OnClick del Button, pero si se usa en el evento OnKeyPress u OnKeyDown, se restauran los estados de edición y la acción queda nula...

De todos modos me alegra mucho que le hayas dado solución (y tomo nota de la misma) :)

Saludos.

Casimiro Notevi 02-09-2011 14:27:50

Gracias de todas formas :)

ArtPortEsp 02-12-2021 20:52:56

Hola Casimiro, en que evento del grid usas este codigo?

Cita:

Empezado por Casimiro Notevi (Mensaje 410681)
Gracias, amigo, aunque así no me funciona, simplemente no hace nada :confused:

Buscando y buscando he encontrado esto, que de momento sí me está funcionando:

Código Delphi [-]
keybd_event(VK_F2, 0, 0, 0);
keybd_event(VK_F2, 0, KEYEVENTF_KEYUP, 0);


Casimiro Notevi 02-12-2021 20:58:38

Cita:

Empezado por ArtPortEsp (Mensaje 544309)
Hola Casimiro, en que evento del grid usas este codigo?

Hola, no lo usé en un grid, pero supongo que puedes usarlo en el "cellclick", o similar, del grid que estés usando.


La franja horaria es GMT +2. Ahora son las 09:18:35.

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