Ver Mensaje Individual
  #3  
Antiguo 01-10-2004
seldonito seldonito is offline
Registrado
 
Registrado: sep 2004
Posts: 6
Reputación: 0
seldonito Va por buen camino
Prueba superada!!!!

Muchas gracias por la ayuda Neftalí. Con tus consejos al final lo he conseguido.

He conseguido poner el código en el evento AppMessage del formPrincipal por lo cual me sirve para todos los formularios de la aplicación.

Al final se ha quedado algo así, sé que es mejorable, por ahora no tengo demasiado tiempo, por lo que con que medio funcione me vale:
Código:
 procedure TfrmPrincipal.AppMessage(var Msg: TMSg; var Handled:Boolean);
var
 actual : TWincontrol;
 tmp : TWincontrol;
 FrmActual: TForm;
 i: integer;
begin
 
  if ((Msg.wParam) = VK_F2) and (Msg.lParam>3500000) then
  begin
		TRY
				FrmActual:=Screen.ActiveForm;
				Actual := Screen.ActiveControl;
				for i:=0 to FrmActual.ControlCount do
				begin
						if (frmActual.Controls[i] is Twincontrol) then
						begin
								tmp:=(frmActual.Controls[i] as twincontrol);
								if (tmp.Parent=actual.Parent) and (tmp.tabOrder=actual.TabOrder-1) then
								begin
										tmp.SetFocus;
										exit;
								end;
						end;
				end;
		except
				actual.Parent.SetFocus;
		end;
  end;

end;
Responder Con Cita