Cita:
|
Empezado por YaninaGenia
Es un form que no tiene nada raro, un par de campos a completar, pero en tiempo de ejecución tengo que cambiarlos de lugar, dependiendo desde donde se acceda. Al hacer esto, si se presiona la tecla "Tab", el cursor se va moviendo en el orden en que los edit fueron creados, o sea, del campo 1 se va al 3, luego al 4 y luego al 2.
|
Cuando utilizas tab, el foco pasa de control en control no necesariamente por el orden de creación, sino por el TabOrder (orden de tabulación) que por defecto es igual al orden de creación de los componentes que aceptan foco.
Si te fijas en los componentes, los que aceptan foco tienen la propiedad TabOrder que es el índice de tabulación y TabStop que indica si acepta o no foco de la tabulación. Si querés ordenarlo en forma sencilla, haces click derecho sobre el form o sobre un contenedor, te sale un menú desplegable donde tenes la opción "Tab Order" y ahí podes mover el orden de tabulación en forma visual. Es bueno tener en cuenta que cada contenedor (control que puede contener visualmente otros controles) tiene su propio TabOrder.
Cita:
|
Empezado por YaninaGenia
Por eso para facilitarme la vida pensé usar el onkeypress para que no se confunda con el onClick y con el onExit (un quilombo).
Ahora, la cosa anda con el key = #13 (si el usuario toca Enter, OnKeyPress), pero no anda para la tecla Tab, es como si no la tomaba como tecla presionada.
|
En el KeyPress no vas a poder obtener el Tab:
Código Delphi
[-]
procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key = VK_TAB) and ((Shift = []) or (Shift = [ssShift])) then
Caption := 'KeyUp' + IntToStr(GetTickCount);
end;
Saludos!