Muchas gracias, de nuevo, Ecfisa.
¡¡¡ CONSEGUIDO !!!
Pero te informo cómo:
(GetKeyState(VK_RETURN) < 0) no ha sido necesario ponerlo en OnClick.
El evento OnChange está vacío.
Sigue sin reconocer la tecla ENTER ni en OnKeyDown ni en OnKeyPress.
He tenido que despreciar la primera pulsación de Enter que provenía del procedimiento
TFClien.LMDEdit6KeyDown() que era la que provocaba la autoselección en el Combo.
Paraa ello he utilizado una variable boleana global, que se activa al pulsar el primer Enter en el procedimiento
TFClien.LMDEdit6KeyDown() y se desactiva al autoseleccionarse el Combo por medio del procedimiento
TFClien.ComboBox1KeyUp() al recibir el foco el Combo.
Sigo sin entender, ¿por qué no reconoce la tecla Enter en OnKeyDown ni en OnKeyPress?
Tampoco ha sido necesario desactivar el BEEP al pulsar ENTER, simplemente porque no sonaba, pero me guardo el código para cuando lo necesite, que es muy útil.
Dejo las modificaciones, para quien le pueda interesar:
Código Delphi
[-]
var PrimeraVezEnter: Boolean;
...............
procedure TFClien.LMDEdit6KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Button6.Enabled then begin
if Key=vk_RETURN
then begin
if ValorOriginal<>LMDEdit6.Text
then begin
SpeedButton3.Click;
PrimeraVezEnter := True;
end;
end;
end;
end;
procedure TFClien.SpeedButton3Click(Sender: TObject);
begin
.......................
Combobox1.Visible:=True;
Combobox1.ItemIndex := 0;
ComboBox1.SetFocus;
ComboBox1.Perform(CB_SHOWDROPDOWN, 1,0);
ComboBox1.SetFocus;
..............
end;
procedure TFClien.ComboBox1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
beginif Key=vk_RETURN
then begin
if PrimeraVezEnter
then begin
PrimeraVezEnter := False;
Exit;
end;
end;end;
Dejo el mecanismo de acción por si interesa a alguien.
Gracias una vez más, Ecfica, por tu
ayuda y esfuerzo, sin ellos no lo hubiera conseguido. ¡Eres mi ídolo...|
¡A ver cúanto aguanto sin tener que molestarte!
Saludos...