Ver Mensaje Individual
  #2  
Antiguo 03-07-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 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 r1d2m3.
Cita:
cuando quiero volver a usar y seleccionar el mismo elemento que tenía en el combobox previo a la limpieza, el evento OnChange no se dispara
Si lo queres seleccionar asignando el índice a la propiedad ItemIndex no tiene nada de extraño, es el comportamiento esperado.
En la ayuda de Delphi, TComboBox -> Events -> OnChange dice:
Cita:
Occurs when the user changes the text displayed in the edit region
(Ocurre cuando el usuario cambia el texto que aparece en el área de edición)

Y como el usuario en ningún momento cambia el texto en el área de edición, el evento no se dispara.

Basta con hacer una simple prueba para verificar que en ningún caso el cambio del valor de ItemIndex dispara el evento OnChange:
Código Delphi [-]
...

procedure TForm1.btnLimpiaClick(Sender: TObject);
begin
  ComboBox1.ItemIndex:= -1;  // no dispara OnChange
end;

procedure TForm1.btnSeleccionaClick(Sender: TObject);
begin
  Randomize;
  ComboBox1.ItemIndex:= Random(9); //(1/10 items al azar), no dispara OnChange
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  ShowMessage('OnChange');
end;
...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita