Hola a todos, solo quería compartir mi código con todos los usuarios de Solocódigo.
He implementado de forma muy sencilla un TEdit con historia, es decir, un TEdit como los que se implementan en los chats, que presionando arriba o abajo aparecen las anteriores líneas que has escrito.
Usamos un TEdit, un int (para saber la línea a la que saltamos) y un TMemo (para ir guardando la información que guardamos.
Establecemos a false el atributo Memo->Visible
Definimos
En el evento de enviar información (por ejemplo un botón "enviar") ponemos:
salto=0;
Memo->Lines->Add(Edit->Text);
En el evento KeyDown del TEdit escribimos:
if (Key==40 && salto>0)
{
salto--;
Edit->Text = Memo->Lines->Strings[Memo->Lines->Count-salto];
}
if (Key==38 && salto<Memo->Lines->Count)
{
salto++;
Edit->Text = Memo->Lines->Strings[Memo->Lines->Count-salto];
}
Ya está. Así de fácil.
Estuve buscando un tiempo cómo implementarlo, y todo lo que encontré era código tremendamente farragoso. Creo que con esta solución queda un código más simple y elegante.
¡Un saludo!