Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros temas > Trucos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Los mejores trucos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-11-2012
Avatar de rretamar
[rretamar] rretamar is offline
Miembro Premium
 
Registrado: ago 2006
Ubicación: San Francisco, Córdoba, Argentina
Posts: 1.104
Poder: 13
rretamar Va camino a la fama
Creando un "historial' de ítems en un ComboBox

Este sencillo código permite que un componente ComboBox se comporte como un 'historial' de cadenas (similar al de los navegadores web), y al igual que estos, la cantidad de cadenas a almacenar está limitada y las más usadas quedan 'flotando' sobre las demás. El código es 'sucio' (y mejorable), pero así como está funciona:

Código Delphi [-]
Function Historial(Const Lista: TStrings; Cadena: String; Convertir_a_mayusculas: Boolean; Max_Items: Integer): String;
Var
  Indice: Integer;
Begin
  Result := Cadena; // Devolver la cadena a modo de respaldo, porque en la clase TComboBox luego de agregar
                    // o eliminar ítems del objeto ITEMS, la propiedad TEXT queda en blanco
  If Cadena = '' Then Exit;
  If Convertir_a_mayusculas Then Cadena := UpperCase(Cadena);
  //
  Indice := Lista.IndexOf(Cadena);     // Buscar la cadena dentro de la lista (retorna -1 si no se encuentra)
  If Indice <> -1 Then Lista.Delete(Indice);                      // Si la cadena ya existe, elimintar la de posición actual
  Lista.Insert(0, Cadena);                                        // Agregar cadena en el primer lugar de la lista
  While Lista.Count > Max_Items Do Lista.Delete(Lista.Count - 1); // Limitar el número de ítems a n elementos
End;

Ejemplo de uso:

(por ejemplo, si el usuario presiona ENTER luego de tipear una cadena)

ComboBox1.Text := Historial( ComboBox1.Items, ComboBox1.Text, False, 50 );

(en este caso, se limita el historial a 50 ítems)

Por supuesto, la idea es conservar el contenido del 'historial' al cerrar el software y recuperarlo al abrirlo, pero esa tarea ya la hacen los componentes Jedi (TJvFormStorage) y los incluídos en Lazarus Codetyphon.
__________________
Lazarus Codetyphon : Desarrollo de aplicaciones Object Pascal, libre y multiplataforma.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Mouse Oculto en evento "ComboBox.DroppedDown:=True;" martini002 Varios 9 28-08-2012 06:02:53
Componente tipo "Historial de valores" Neftali OOP 6 04-03-2010 12:46:24
Propiedad de componente tipo "combobox" Cecil OOP 11 17-08-2008 18:39:59
Indicar Item "default" Combobox JcTaztoman Varios 1 14-09-2007 22:11:14
ComboBox - Pasar un "Key" presionado afuera como si fuera de allí amadis OOP 7 10-11-2006 15:29:48


La franja horaria es GMT +2. Ahora son las 05:41:37.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi