Hola:
Bueno, ante todo agradecer a todos los foreros por la ayuda desinteresada que aportan y de la que tanto nos beneficiamos muchas personas como yo.
El problema que tengo es el siguiente:
Tengo un Form principal desde el que se abre otros forms secundarios, se realizan modificaciones y vuelve al form principal. Desde estos forms secundarios hay muchos edits con un botón de búsqueda a la derecha que despliega listas (clientes,proveedores.etc.). Mi intención es que cuando el cursor se encuentre en uno de estos edits, al pulsar la tecla 'flecha arriba', simule como si se hubiera hecho clic en el botón de búsqueda y se despliegue la lista. Sin usar el ratón.
Esto se hacerlo con la función FindNextControl desde el propio Form, pero para no repetir tanto la función en cada form, me gustaría hacer una función en el Form principal que sirva para todas. Pero siempre me busca el siguiente control de el Form principal y no de la Form desde el que se hace la llamada, aunque si me detecta el form y el componente. Este es el código que tengo.
Código Delphi
[-]
procedure TP_Principal.EditConLista;
Var Forma:Tform;
Component,Component2:TwinControl;
begin
forma:=Screen.ActiveForm;
Component:=Screen.ActiveControl;
if component is TEdit then
begin
With Screen.Activeform do
begin
Component2:= FindNextControl(Screen.ActiveControl,True,True,False);
if (component2.ClassType=TSpeedButton)
and (Copy(Component2.Name,1,11)='BotonBuscar')Then MostrarListaAsociada;
end;
end;
end;
Gracias y un saludo.