Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-02-2022
ZyZzY69 ZyZzY69 is offline
Registrado
 
Registrado: ene 2022
Posts: 6
Poder: 0
ZyZzY69 Va por buen camino
Tecla TAB no funciona en RichEdit

Hola!

Estoy intentando que un TAdvRichEditor me reconozca la tecla tab para insertar tabulaciones. Y no es que no haga las tabulaciones, es que parece que no me reconoce ni la pulsación, en cambio otras teclas como la de retorno de carro sí la reconoce.
Como veis puse WantTab True, ya que si no al pulsar la tecla TAB se me movía por todas las pestañas del formulario.

Código Delphi [-]
Procedure TConexion.CrearTab(Params: TParametrosTab);
var
  Key: TScKey;

begin
  FLog := Params.Log;
  FDockSite := Params.DockSite;
  FTab := TLMDDockPanel.Create(FDockSite);
  FTab.ClientKind := dkDocument;
  FTab.Caption := 'TEST';
  DockAsTabbedDoc(FTab);
  RichEdit1 := TAdvRichEditor.Create(FTab);
  RichEdit1.Parent := FTab;
  RichEdit1.Align := alClient;
  RichEdit1.font.Color := clWindow;
  RichEdit1.font.Size := 12;
  RichEdit1.font.Name := 'Courier New';
  RichEdit1.Color := clBlack;
  RichEdit1.OnKeyPress := RichEdit1KeyPress;
  RichEdit1.OnKeyUP := RichEdit1KeyUp;
  RichEdit1.OnMouseDown := RichEdit1MouseDown;
  RichEdit1.OnMouseUp := RichEdit1MouseUp;
  RichEdit1.OnContextPopup := RichEdit1ContextPopup;
  RichEdit1.WantTab := True;
He probado los siguientes códigos y de ninguna forma me muestra los mensajes.

Código Delphi [-]
procedure TConexion.RichEdit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var
  msg: TMsg;
begin
  if Key = VK_TAB then
  begin
    ShowMessage('HOLAAA');
    beep(0, 100);
    while PeekMessage(msg, RichEdit1.handle, WM_KEYFIRST, WM_KEYLAST, PM_REMOVE) do;
  end;
 end;
En este código siguiente me funcionan todas las teclas excepto la #9,, que se supone que es la tecla TAB
Código Delphi [-]
procedure TConexion.RichEdit1KeyPress(Sender: TObject; var Key: Char);
var
  AKey: Char;
  Comando: string;
begin
  AKey := Key;
  Key := #0;

  if AKey = #9 then
  begin
    ShowMessage('weeeeee');
    beep(10, 10);
    Key := #0;
  end;

  if AKey = #8 then
  begin
    // Memo2.ScrollBars := ssVertical;
    if Length(Command) > 0 then
    begin
      Delete(Command, Length(Command), 1);
      Delete(ConsoleData, Length(ConsoleData), 1);

      ParseTextIntoMEMO(ConsoleData, RichEdit1);
    end
    else
      Key := #0;
  end
  else if AKey = #13 then
  begin
    //ShowMessage('Pulsaste retorno');
    Key := #0;
    if Command = 'clear' then
    begin
      RichEdit1.Clear;
      ConsoleData := '';
    end;
    Command := Command + AKey;
    ScSSHShell1.WriteString(Command);
    ParseTextIntoMEMO(ConsoleData, RichEdit1);

  end
  else
  begin
    Key := #0;
    Command := Command + AKey;
    ConsoleData := ConsoleData + AKey;
    ParseTextIntoMEMO(ConsoleData, RichEdit1);
  end;
end;
Disculpad si el código no está muy pulido, aún estoy en prácticas y es la primera vez que utilizo delphi y pascal .

Si necesitáis algún dato más me lo decís y os lo comparto.

Última edición por Casimiro Notevi fecha: 11-02-2022 a las 11:50:27. Razón: Cambiar etiquetas code por delphi
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Pasar datos de un RichEdit a otro RichEdit santiago14 Varios 3 05-12-2014 17:39:25
saber que tecla se presiona despues de X tecla amadis OOP 9 04-01-2008 13:16:35
Cambiar la tecla TAB por la tecla ENTER al pasar de controles dec Trucos 0 30-06-2006 13:43:03
Parte de un RichEdit a otro RichEdit (donde esté el cursor) Tomy Varios 3 21-12-2005 21:08:15
No me funciona la tecla suprimir Durbed Varios 0 18-08-2005 12:54:08


La franja horaria es GMT +2. Ahora son las 16:17:32.


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
Copyright 1996-2007 Club Delphi