FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Tab en RichEdit
Buenas a todos!
¿Alguien sabe cómo puedo acceder o cambiar el numero de espacios que equivalen a una pulsación de la tecla Tab? Estoy haciendo un Editor y me gustaría hacer que se pudiese elegir el tamaño del Tab, pero no encuentro la forma. Gracias de antemano |
#2
|
||||
|
||||
Si estas trajando con el RichtEdit
RichEdit1->Paragraph->Alignment RichEdit1->Paragraph->Numbering Si con TMemo, tendras que capturar el evento OnKeyDown, y comprobar el Key = VK_TAB |
#3
|
|||
|
|||
Cita:
He visto que muchos editores sencillos te dan la opción de elegir el tamaño de tu tabulador, pero no consigo encontrar nada útil al respecto. He mirado las propiedades que me has dado, pero ninguna me sirve para conocer el Tamaño del tab (o no sé usarlas que también puede ser). De todos modos te agradezco tu respuesta y me gustaría que si después de esta aclaración sigues pensando que mi solución está en las propiedades que me has dado, por favor me las aclares. Muchas Gracias. Espero respuesta |
#4
|
||||
|
||||
A ver, el TRichtEdit es mas largo de lo que parece, basicamente tiene toda la funcionalidad de un editor de texto complejo, lo primero mirate el ejemplo que trae el compilador
.......Borlan5\CBuilder5\Examples\Apps\RichEdit\ Y seguro que resolvera todas tus dudas. Por otra parte lo que me refiero es a esto. void __fastcall TForm1::RichEdit1KeyPress(TObject *Sender, char &Key) { int StartPos = RichEdit1->SelStart + RichEdit1->SelLength; if (Key == VK_TAB) { ShowMessage(StartPos); Key = 0; } } |
#5
|
|||
|
|||
Buenas barman:
En los ejemplos no encuentro nada que me sirva y este código que has pegado tampoco hace nada de lo que necesito. El codigo lo que hace es que cuando se pulse la tecla TAB salga por pantalla la suma del SelStart y del SelLength y aparte de que no se imprima el TAB. Y no le veo relación con lo que yo quiero hacer, ya que estos dos valores son la posición del cursor y de la longitud de la seleccion. No sé, pero creo que no nos entendemos muy bien . Aunque por intentarlo que no quede..... . Se me ocurre que quizá tu idea era que seleccionase con el ratón el un TAB escrito anteriormente y que el código me dijera la longitud, si es eso te adelanto que no funciona ya que la longitud del caracter \t es siempre 1. Manualmente he comprobado que un TAB equivale a 9 espacios por defecto, y lo que yo quiero es poder cambiar eso (tanto acceder para obtener ese valor como acceder para cambiarlo). Gracias de todas formas, sigo esperando respuesta. |
#6
|
||||
|
||||
Cita:
A ver por parte, 1º escribres y si pulsas el tabulador le envias 9 espacios. void __fastcall TForm1::RichEdit1KeyUp(TObject *Sender, WORD &Key, TShiftState Shift) { if (Key == VK_TAB) { RichEdit1 ->SetSelTextBuf(" "); } } 2º que lea el texto escrito y que cambie los Tabs por que quieras SetSelTextBuf. for (int i = 0; i< strlen(RichEdit1 ->Text.c_str()); i++ ) { if (RichEdit1 ->Text.c_str()[i] == VK_TAB) ShowMessage("A"); } |
|
|
|