PDA

Ver la Versión Completa : Cambiar la tecla TAB por la tecla ENTER al pasar de controles


dec
30-06-2006, 14:43:03
Cambiar la tecla Tab por Enter

Primer método

En el Form principal del programa en el evento OnCreate ponemos el siguiente código:


Application.OnMessage := AppMessage;


La declaración del procedure:


procedure AppMessage(var Msg: TMsg; var Handled: Boolean);


Y su código será el siguiente:

procedure TMainForm.AppMessage(var Msg: TMsg; var Handled: Boolean);
var
actual: TWinControl;
begin
if Msg.message = WM_KEYDOWN then
if Msg.wParam = VK_RETURN then
begin
actual := Screen.ActiveControl;
if actual is TEdit then
Msg.wParam := VK_TAB;
end;
end;


Tener en cuenta que en MainForm hay que poner el nombre de nuestra form

Si estamos usando la versión 5.0 de Delphi o superior, colocaremos en el dicho form principal el objeto TApplication. Y en el evento OnProcessMessage, teclearemos el código de la función anterior.

Segundo método:


procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
if not (ActiveControl is TDBGrid) then begin
Key := #0;
Perform(WM_NEXTDLGCTL, 0, 0);
end
else if (ActiveControl is TDBGrid) then
with TDBGrid(ActiveControl) do
if selectedindex < (fieldcount -1) then
selectedindex := selectedindex +1
else
selectedindex := 0;
end;