这个很简单,在Label的OnMoveMouse的事件中写:
以三个label为例!
procedure TForm1.Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  Label1.Font.Color := clGreen;
end;procedure TForm1.Label2MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  Label1.Font.Color := clGreen;
end;procedure TForm1.Label3MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  Label1.Font.Color := clGreen;
end;

解决方案 »

  1.   

    procedure ChangeColor(Sender: TObject);
    begin
      Sender.Font.Color:= clRed;
    end;
    然后再Label的onMouseMove中调用即可
      

  2.   

    procedure TForm1.ChangeColor(Sender: TObject);
    begin
      (Sender as TLabel).Font.Color:= clRed;
    end;
    在Label的onMouseMove中调用
      

  3.   

    MouseMove or ScreenToClient都可以;
    如果用ApplicationEvents可能会更好一些
      

  4.   

    把Label写成自己的控件,重载
    CM_MOUSEENTER 和 CM_MOUSELEAVEL事件
      

  5.   

    sorry!是我没说清。鼠标离开Label之后还要把颜色变回来的。
      

  6.   

    procedure TForm1.RestoreColor(Sender: TObject);
    begin
      (Sender as TLabel).Font.Color:= clBlack;
    end;
    在Label的parent控件的onMouseMove中调用
      

  7.   

    csdn上的问题怎么越来越简单???!