Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-12-2011
Fede14lp Fede14lp is offline
Registrado
NULL
 
Registrado: dic 2011
Posts: 8
Poder: 0
Fede14lp Va por buen camino
No borrar Text de un ComboBox

Hola a todos!
Les queria preguntar como puedo hacer para que el usuario no pueda borrar el text del combobox. Ya probe poniendo el style en csDropDownList, pero esto lo que hace es eliminar el text.
Lo que yo quiero hacer es que el ComboBox tenga text, pero que no se pueda borrar ni modificar. O sea, que quede asi como en un "ReadOnly" por decir de alguna manera.

Gracias de antemano, saludos!
Responder Con Cita
  #2  
Antiguo 15-12-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

De momento se me ocurren dos formas, la más obvia: Enabled en False. (Si querés evitar el efecto visual ponelo dentro de un TPanel y poné en False su propiedad Enabled).

La otra es usando el evento OnKeyPress del TComboBox:
Código Delphi [-]
procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
  Key:= #0;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 15-12-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Fede14lp Ver Mensaje
Ya probe poniendo el style en csDropDownList, pero esto lo que hace es eliminar el text.
Yo no entiendo qué quieres decir con esto. ¿Para qué sirve un comobox con cuadro de texto si no se puede escribir en él? Y si no tiene cuadro de texto (dropdown list) ¿a qué te refieres con que desaparece el texto? Siempre se verá el texto del elemento seleccionado, a menos, claro está, que no se haya seleccionado nada.

// Saludos
Responder Con Cita
  #4  
Antiguo 15-12-2011
Fede14lp Fede14lp is offline
Registrado
NULL
 
Registrado: dic 2011
Posts: 8
Poder: 0
Fede14lp Va por buen camino
Hola eficsa.
La primer solucion que me diste no me anduvo porque cuando lo puse en false me quedo inhabilidado directamente y no lo puedo desplegar al ComboBox, y despues me tiraba un error.
La segunda solucion me funciono y no se puede modificar el text, pero ademas de eso quisiera saber como puedo hacer para que aparte de no modificar el text, que tampoco se pueda poner el cursor en el text, como si le estuviera poniendo un ReadOnly, no se si me explico xD.

Gracias por la respuesta!
Responder Con Cita
  #5  
Antiguo 15-12-2011
Fede14lp Fede14lp is offline
Registrado
NULL
 
Registrado: dic 2011
Posts: 8
Poder: 0
Fede14lp Va por buen camino
Cita:
Empezado por roman Ver Mensaje
Yo no entiendo qué quieres decir con esto. ¿Para qué sirve un comobox con cuadro de texto si no se puede escribir en él? Y si no tiene cuadro de texto (dropdown list) ¿a qué te refieres con que desaparece el texto? Siempre se verá el texto del elemento seleccionado, a menos, claro está, que no se haya seleccionado nada.

// Saludos
Hola roman!, te explico que es lo que estoy haciendo.
Estoy haciendo una especie de agenda, en la que guardo datos de la persona junto a la ciudad donde vive. Para esto, yo hice una segunda tabla con ciudades, donde guardo la ciudad, provincia y codigo postal, y cuando voy a hacer el insert de esta tabla, puse un edit para la ciudad y otro para el codigo postal. Pero para las provincias, puse un combobox con todas las provincias de Argentina, asi quedan fijas y no hay ningun error de tipeo por parte del usuario.
Entonces lo que me queda en el combobox es:
Un titulo antes de desplegar el ComboBox que dice "Elija una provincia", y luego la lista de todas las provincias Argentinas.
Por eso es, que lo que yo necesito es que no se pueda borrar ese texto que dice "Elija una provincia".

Agrego: Cuando pongo el style en csDropDownList, lo que no se ve es el Text, pero los Items del ComboBox se ven perfectamente.

Última edición por Fede14lp fecha: 15-12-2011 a las 21:34:51.
Responder Con Cita
  #6  
Antiguo 15-12-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pues entonces añade una "provincia" con nombre "Elija una provincia" al principio de tu lista de ítems. Así, eso es lo que verá el usuario al comenzar y si queres validar que se haya realmente capturado la provincia sólo tienes que asegurarte que el ItemIndex del ComboBox no sea cero.

Por otro lado, para el problema que describes, si estás usando una base de datos, el enfoque que das no me parece el más adecuado. Lo más práctico sería tener una tabla en la base con el catálogo de provincias y usar un TDBLookupComboBox para que el usuario seleccione una. De todas formas, en dicho catálogo pondrías como primer elemento, la falsa provincia "Elija una provincia". Con másdetalle, lo que yo haría (y hago) es una tabla con dos campos, el primero, numérico y la llave primaria con un consecutivo y el segundo el nombre de la provincia. La false provincia tendría el valor cero en su llave primaria.

// Saludos
Responder Con Cita
  #7  
Antiguo 15-12-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Si no te entiendo mál, podrías situar "Elija una provincia" en la primera posición del ComboBox, algo como:
Código Delphi [-]
  ...
  ComboBox1.Clear;
  ComboBox1.Items.Add('Elija una provincia');
  while not DataSet.Eof do
  begin
    ComboBox1.Items.Add(DataSet.FieldByName('PROVINCIA').AsString);
    DataSet.Next;
  end;
  ComboBox1.ItemIndex:= 0; 
  ...
y luego despreciar ese índice si es seleccionado:
Código Delphi [-]
procedure TForm1.ComboBox1Click(Sender: TObject);
begin
  if ComboBox1.ItemIndex > 0 then
  begin
  ...
end;

Saludos.

Edito: Y ahora que veo, tál como dijo roman... (ando algo lento con el teclado )
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 18-12-2011
Fede14lp Fede14lp is offline
Registrado
NULL
 
Registrado: dic 2011
Posts: 8
Poder: 0
Fede14lp Va por buen camino
Ya solucione el problema con la segunda solucion que me dio ecfisa, gracias a todos
Responder Con Cita
Respuesta



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
Desplegar Combobox al escribir en el Text del mismo gulder Varios 2 29-10-2008 17:37:43
Añadir archivo .text a combobox (Nombre) Caral Varios 11 30-07-2007 22:25:28
Borrar un registro desde un combobox con php+mysql enecumene PHP 6 22-01-2007 16:05:42
Guardar lo que tengo en un Edit1.text y edit2.text en una base de datos firebird jorgeluisc Conexión con bases de datos 1 23-04-2006 18:29:28
Borrar text de dblookupcombobox sflexas Conexión con bases de datos 1 25-09-2005 03:37:07


La franja horaria es GMT +2. Ahora son las 14:12:44.


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
Copyright 1996-2007 Club Delphi