Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Propiedad onclick de ComboBox (https://www.clubdelphi.com/foros/showthread.php?t=61725)

Lizette 19-11-2008 21:10:03

Propiedad onclick de ComboBox
 
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..

Código Delphi [-]
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:

Código Delphi [-]
if Combobox.ItemIndex < 0 then
  // no tiene elementos

marcoszorrilla 19-11-2008 21:18:39

Prueba con este código y el evento exit:
Código Delphi [-]
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
Código Delphi [-]
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

Cita:

Empezado por Lizette (Mensaje 326902)
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

Cita:

Empezado por Lizette (Mensaje 326932)
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

Código Delphi [-]
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:

Código:

If trim(Combo.Text) = '' then Combo.SetFocus;
Código:

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

Lizette 22-11-2008 01:05:59

Gracias!! :)


La franja horaria es GMT +2. Ahora son las 23:41:32.

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