Hola dekorone16.
Como ya te comente en el mensaje
#14:
Cita:
Lo que podría no ser el evento que desees considerar para determinar que un ítem a sido seleccionado. Pero basta con ejecutar el código en el evento que prefieras para obtener el comportamiento. Como por ejemplo en OnKeyPreess cuando se presione tecla Intro.
|
Más concretamente, ¿ Cuando deseas que se considere que se ya se realizó la selección ?
- ¿ Cuando se presionó Intro ?
- ¿ Cuando se hizo doble click ?
- ¿ Cuando abandona el componente ?
Entonces, todo pasa por poner el código que te indiqué en el evento que desees, eso ya es tu decisión.
Para ejemplificar voy a considerar que el usuario seleccionó un item en cualquiera de estos casos:
- Presionó la tecla Enter.
- Hizo doble click sobre la lista
- Salió del componente.
Código Delphi
[-]
...
procedure LimpiarYPlegar(AComboBox: TComboBox);
begin
with AComboBox do
begin
Items.Clear;
Height:= CBOX_HEIGHT
end;
end;
procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then LimpiarYPlegar(TComboBox(Sender))
end;
procedure TForm1.ComboBox1DblClick(Sender: TObject);
begin
LimpiarYPlegar(TComboBox(Sender))
end;
procedure TForm1.ComboBox1Exit(Sender: TObject);
begin
LimpiarYPlegar(TComboBox(Sender))
end;
Como es llamado desde tres eventos, para evitar redundancia puse el código dentro de un procedimiento, pero como verás es la misma porción de código de que he estado hablando.
En cualquier caso, encontrarás el valor seleccionado en la propiedad
Text del
TComboBox o cadena vacía si ninguno fué seleccionado.
Saludos.