Saber sobre que control está situado el ratón  

Enviado Por: Alex Colinas
Web : N.A.
Email: ea3ayp@teleline.es
Fecha: 12/03/00

Truco accedido 99 veces

 


  • Pon dos TLabels en tu form (Label1 y Label2)
  • Pon un TPopupMenu, asociandolo a la form
  • Pon este código en el evento OnPopUp del PopUpMenu


     procedure TForm1.PopupMenu1Popup(Sender: TObject);
     var
        Cur : TPoint;
     begin
        {Al parecer sólo para componentes que puedan recibir el foco}
    
        {Obtiene la posición del ratón}
        GetCursorPos(Cur);
        {Obtenemos el nombre del control}
        label2.caption:=FindControl(windowfrompoint( Cur )).Name;
        {Si són tedit o tdbedit muestra el contenido de la edición}
        if FindControl(windowfrompoint( Cur )).ClassType =TEdit then
           label1.caption:=TEdit(FindControl(windowfrompoint( Cur ))).Text;
        if FindControl(windowfrompoint( Cur )).ClassType =TDBEdit then
           label1.caption:=TDBEdit(FindControl(windowfrompoint( Cur ))).Field.AsString;
     end;
    



    Al pulsar el botón derecho del ratón, en el Label2 obtendremos el nombre del componente.
    Si se trata de un TEdit o TDBEdit en el Label1 obtenemos el texto que se está editando.
    Yo lo uso para en un TDBEdit enlazado a un campo "currency" me enseñe la conversion de PTA<-->Euro