jueves, 16 de agosto de 2018

TDBLookupComboBox: Validar.

Validar un combo del tipo TDBLookupComboBox con las siguientes propiedades:

Style: cdDropDown
ArrowKeysTravers: True
AutoComplete: True

Es una configuración muy cómoda para el usuario, pero permite que deje el valor del combo en blanco o con un valor que no coincide con ningún elemento, por el motivo que sea (distracción o "a ver que pasa").
Nota: para combos con pocos elementos conviene utilizar el estilo (style) csDropDownList y deshabilitar la propiedad de autocompletado.
Volviendo al tema de inicio, la validación se realiza a través del evento OnExit:

procedure TFCRegCompras.cmbProvExit(Sender: TObject);
begin
  if cmbProv.KeyValue=Null then
  begin
    ShowMessage('Seleccione un proveedor.');
    cmbProv.SetFocus;
  end;

end;

Desde ya es muy conveniente antes de cargar y habilitar el combo, verificar que el dataset no esté vacío, si esto sucediese, el programa no se colgaría, pero una vez que el usuario entra al combo, no podría salir nunca porque KeyValue siempre sería Null y al utilizar SetFocus vuelve a entrar al combo. Es una validación muy útil pero deben tomarse ciertas precauciones. Por ejemplo, en un programa de registración de compras, donde otros combos y valores dependen del proveedor seleccionado, usando el evento OnChange del combo de proveedores, es fundamental tomar este tipo de medidas.

No hay comentarios:

Publicar un comentario