Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Tecla TAB no funciona en RichEdit (https://www.clubdelphi.com/foros/showthread.php?t=95562)

ZyZzY69 11-02-2022 10:48:00

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.

Casimiro Notevi 11-02-2022 11:48:51

Por favor, si pones código delphi, usa el icono/tag apropiado, ya que el genérico "code" no muestra correctamente el código delphi.



ZyZzY69 11-02-2022 12:15:27

Cita:

Empezado por Casimiro Notevi (Mensaje 545333)
Por favor, si pones código delphi, usa el icono/tag apropiado, ya que el genérico "code" no muestra correctamente el código delphi.

Muchas gracias, había leído en el momento de registrarme lo de encapsularlo en códido delphi pero no me acordaba donde estaba, y como el icono parece una papelera me puse encima de todos para ver de que eran excepto en ese jajajaja.

Saludos!

Casimiro Notevi 11-02-2022 13:09:23

Cita:

Empezado por ZyZzY69 (Mensaje 545336)
... y como el icono parece una papelera...

:D:D:D
Es el icono "primigenio" de delphi.

Neftali [Germán.Estévez] 14-02-2022 12:08:03

Actualizado a uno de versiones más nuevas...
;);)


Casimiro Notevi 14-02-2022 12:22:57

¡¡¡Oooh...!!! qué raro se me hace :)

El original anterior tenía su sentido y explicación, pero este casco no sé qué quiere decir ¿que para programar en delphi hay que usar casco para protegerse?

Ah, también has editado esa pantallita, estupendo... y gracias por el trabajo y tiempo ;)

ZyZzY69 15-02-2022 19:04:36

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 545374)
Actualizado a uno de versiones más nuevas...
;);)

Muchas Gracias! Ahora ya no tengo excusas jajaja.

Cita:

Empezado por Casimiro Notevi (Mensaje 545377)
... pero este casco no sé qué quiere decir ¿que para programar en delphi hay que usar casco para protegerse?...

Y tanto que hace falta casco....sobre todo cuando no consigues hacer algo jajajaja


La franja horaria es GMT +2. Ahora son las 20:06:14.

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