Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ayuda con Combobox (https://www.clubdelphi.com/foros/showthread.php?t=28599)

pepecharlie67 24-12-2005 13:47:24

Ayuda con Combobox
 
Hola, bueno pues tengo una duda sobre el combobox(soy un poco novato en esto de delphi) y quiero saber si se puede almacenar el ultimo numero introducido en un combobox para poder recordarlo. Es decir,me explico,quiero saber si puedo introducir un numero y que la proxima vez(que quiera meter otro), el numero anterior me aparezca dando a la flechita(osea poder utilizarlo). Espero haberme explicado bien,ya que soy muy malo.Gracias por anticipado.

dec 24-12-2005 14:09:15

Hola,

pepecharlie67, deja que te diga que no he entendido bien la cuestión que planteas, pero, que, estoy seguro de que podría llegar a hacerlo a poco que nos pusiéramos de acuerdo en un par de cosas, conviene a saber:


Cita:

(...) quiero saber si se puede almacenar el ultimo numero introducido en un combobox para poder recordarlo. (...)
El "ComboBox" guarda una lista de elementos, y, efectivamente, es un control, que, al contrario que el "ListBox", permite al usuario escribir en su interior un nuevo elemento, o, sencillamente, algo distinto a los elementos que contenga el "ComboBox". Ahora bien, dices que quieres guardar el último número introducido en el "ComboBox", y yo me pregunto: ¿introducido por quién? ¿Por ti, programáticamente, esto es, desde código? ¿Por el usuario, escribiéndolo en el mismo? ¿Y almacenarlo dónde? ¿Quieres decir añadir el nuevo elemento al propio "ComboBox"? ¿Tal vez a una base de datos? ¿A un archivo de configuración o al registro de Windows, por ejemplo?


Cita:

Es decir,me explico,quiero saber si puedo introducir un numero y que la proxima vez(que quiera meter otro), el numero anterior me aparezca dando a la flechita(osea poder utilizarlo).
A la primera parte de la frase anterior me asaltan las dudas que comento más arriba. A la segunda parte de la frase, sintiéndolo de veras, no sé qué entiendes por una "flechita", ni dónde se supone que esta "flechita" estaría. Intuyo vagamente que te refieres a la "flecha" que puede verse en el propio "ComboBox", la cual permite mostrar los elementos de dicho control, para que sea posible elegir uno de ellos. ¿Es esa "flechita"? De todos modos, aunque así fuera, sigo sin entender lo que quieres decir. Seguro que puedo llegar a entenderlo, pero, ahora mismo no caigo en ello.


Cita:

Espero haberme explicado bien,ya que soy muy malo.
No; estoy seguro de que puedes hacerlo mucho mejor: tómate el tiempo que te sea menester. También puede ser que sea yo el que no se entera de las cosas ni aunque se las pongan delante por partes y coloreaditas: tal vez alguien pueda responderte. Yo te pido, por favor, que te expliques un poco mejor, o que te reexpliques, a ver si puedo ayudarte en algo. ;)

pepecharlie67 24-12-2005 16:26:03

Antes de nada muchas gracias por responderme.A ver,como bien dices el numero le mete el usuario en el combobox(en tiempo de ejecucion), y este numero le quiero guardar en el combobox.De manera que al volver a pedir un numero, me aparezca el anterior introducido dandole a la flecha(como bien apuntas, es esa flecha que indicas).A ver te digo el enunciado:
"Numero telefono:Se podra escribir directamente o rellamar al ultimo numero utilizado".
Para hacer esto he pensado en utilizar un combobox y el ultimo numero utilizado guardarle en el combobox de manera que al abrir la flecha aparezca tal numero.Gracias de nuevo

luisgutierrezb 24-12-2005 18:03:10

Pues ahorita solo me viene a la mente que si la lista no esta ordenada, entonces puedes usar lo siguiente para obtener el ultimo elemento:
Combobox1.ItemIndex := Combobox1.Items.Count -1;
aunque claro, habria que validar que la lista no estuviera vacia...

Lepe 25-12-2005 17:47:03

A ver, lo que necesitas es esto:

Para añadir un número de telefono:

Código Delphi [-]
procedure TForm1.ComboKeyUp(.....)
begin
if key = vk_return then // estando en el Combo, presiona la tecla Enter
  if combo.items.indexof(combo.text) =-1 then // si no existe ya el numero en la lista
      combo.items.Add(combo.text);
end;

Si quieres que al cerrar el programa, y volverlo a abrir, vuelva a recordar esos números escritos por el usuario, tendrás que guardarlos a disco:
Código Delphi [-]
procedure TForm1.Form1Close(...)...
begin
  combo.items.SaveTofile(ChangeFileExt(Application.Exename,'.dat'));
end;

procedure Tform1.FormCreate(...);
begin
  if fileExistsChangeFileExt(Application.Exename,'.dat')) then
     Combo.items.LoadFromFile(ChangeFileExt(Application.Exename,'.dat'));
end;

saludos

pepecharlie67 25-12-2005 23:31:39

Ok,muchas gracias.Me funciona casi todo,solo me da un problema de compilacion.¿FileExistsChangeFileExt,tengo que declararlo?¿De que manera?ES que me dice que no esta declarado.Gracias de nuevo.

Lepe 26-12-2005 10:57:13

Ups, me faltó un paréntesis. De todas formas, te recomiendo que al menos, mires la ayuda sobre las funciones que he puesto.

Código Delphi [-]
if fileExists(ChangeFileExt(Application.Exename,'.dat'))

Si te falta algún uses, puedes hacer clic en la función, y despues F1.

saludos

pepecharlie67 26-12-2005 12:16:02

Ok,esto ya casi me va.Me falta un pequeño detalle.Y es que siempre me sale el primer numero que inserte.He pensado en borrar la lista con clear,y bien, en ejecucion me sale,pero al volver a cargar el programa me vuelve a salir el primer numero que inserte.Tambien he pensado en acceder siempre al ultimo elemento de la lista,pero nada.Os lo agradeceria mucho.Gracias.

pepecharlie67 26-12-2005 12:21:17

Vale muchas gracias.Ya esta solucionado.Al final lo he arreglado de la siguiente manera.Cuando me insertaba un numero, borraba los elementos de la lista,los añadia y los guardaba en la misma condicion.Gracias


La franja horaria es GMT +2. Ahora son las 15:16:23.

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