PDA

Ver la Versión Completa : Propiedad onclick de ComboBox


Lizette
19-11-2008, 21:10:03
Hola a todos..
Tengo un combo box, que al hacer click sobre él y si éste no tiene nada (es decir, ningun item seleccionado), me retorne a un edit..

El codigo que utilizo es el siguiente, en el evento on click del combo, le intente con if(length(ComboClas.text)=0) y tampoco tuve éxito..

El EditVacio.text es un edit q no contiene texto y con ese lo comparo..


procedure TfrmProductoAdd.ComboClasClick(Sender: TObject);
begin
if (ComboClas.Text=EditVacio.Text)then
begin
if(EditPres.Text<>EditVacio.Text)then
begin
EditPres.SetFocus;
end
else
if(EditDes.Text<>EditVacio.Text)then
begin
EditDes.SetFocus;
end
else
begin
EditCve.Enabled:=True;
EditCve.Color:=clWindow;
EditCve.SetFocus;
end;
end;
end;

luisgutierrezb
19-11-2008, 21:13:24
ningun item seleccionado lo puedes validar con:


if Combobox.ItemIndex < 0 then
// no tiene elementos

marcoszorrilla
19-11-2008, 21:18:39
Prueba con este código y el evento exit:
procedure TForm1.ComboBox1Exit(Sender: TObject);
begin
if combobox1.ItemIndex = -1 then
ShowMessage('No ha elegido nada.')
else
ShowMessage('Eligió algo');
end;
Un Saludo.

Caral
19-11-2008, 21:23:07
Hola

if ComboClas.Text = ' ' then
EditPres.setFocus;

Saludos

ContraVeneno
19-11-2008, 22:12:35
Si lo que quieres es validar que siempre tenga algo seleccionado, solamente vas poner la propiedad ItemIndex en 0 y la propiedad Style en DropDownList

Lizette
19-11-2008, 23:22:55
Mmmm el caso es que quiero, que si se hace clic dentro del combo q no lo acepte, porque estoy haciendo un tipo de validacion que no me permita hacer click en ningun objeto, que solo se desplace por medio de enter o tabulador, pero si hago click en el combo alli se queda el cursor y no me hace nada..:o

ContraVeneno
20-11-2008, 01:01:42
A caray.... :confused::confused::confused::confused:

donald shimoda
20-11-2008, 02:25:26
Mmmm el caso es que quiero, que si se hace clic dentro del combo q no lo acepte, porque estoy haciendo un tipo de validacion que no me permita hacer click en ningun objeto, que solo se desplace por medio de enter o tabulador, pero si hago click en el combo alli se queda el cursor y no me hace nada..:o

No funciona el chequeo en el OnEnter del combo, seteando el focus al control deseado?

Saludos

Lizette
20-11-2008, 05:38:36
hola donald, le cale como me dices y si me lo hace, si hago clic sobre el me regresa el foco, pero cuando me desplazo con enter o tab y llega uno antes del combo, alli se keda pk nunca se pasa al combo para seleccionar..

donald shimoda
20-11-2008, 12:31:45
hola donald, le cale como me dices y si me lo hace, si hago clic sobre el me regresa el foco, pero cuando me desplazo con enter o tab y llega uno antes del combo, alli se keda pk nunca se pasa al combo para seleccionar..


Puedes pegar aquí el código?

Lizette
21-11-2008, 08:10:12
procedure TfrmProductoAdd.ComboClasEnter(Sender: TObject);
begin
if (ComboClas.Text=EditVacio.Text)then
begin
if(EditPres.Text<>EditVacio.Text)then
begin
EditPres.SetFocus;
end
else
if(EditDes.Text<>EditVacio.Text)then
begin
EditDes.SetFocus;
end
else
begin
EditCve.Enabled:=True;
EditCve.Color:=clWindow;
EditCve.SetFocus;
end;
end;
end;


Mmm lo q habia pensado es en poner una bandera, esk tal vez por la condicion que tiene al principio, pk si da click en el combo y esta vacio se devuelve, es correcto, pero cuando me desplazo por los componentes con enter o tab y llego hasta el combo, entra a la condicion y se devuelve..

Seria una bandera si se desplaza con entero tab que se active la bandera y entonces preguntaria en vez de if (ComboClas.Text=EditVacio.Text)then, mas bien agregandole and (bandera=0), que se devuelva, y si bandera es =1, lo va a dejar seleccionar..

Como vez mi idea donald??, no lo he calado..

ContraVeneno
21-11-2008, 16:05:31
en el evento "OnExit" de tu combo podrías poner cualquiera de estas dos opciones:


If trim(Combo.Text) = '' then Combo.SetFocus;


If Combo.ItemIndex = -1 then Combo.SetFocus;

Lizette
22-11-2008, 01:05:59
Gracias!! :)