我已经建好了一个控件数组lbaFunc[0..4]
有人说写
procedure LabelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
end;然后在TForm的public里面声名,
最后
lbaFunc[i].OnMouseMove := LabelMouseMove;
就ok了,但是编译的时候在声名那里出问题:[Error] unitfrmMain.pas(16): Unsatisfied forward or external declaration: 'TfrmMain.LabelMouseMove'
请高人指教!

解决方案 »

  1.   

    然后在TForm的public里面声名,
    要这样写
    procedure TForm.LabelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
    begin
    end;
      

  2.   

    >>procedure LabelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);修改如下:procedure TfrmMain.LabelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);中間加個: TfrmMain.然後, 修改完, 再按下  Ctrl + Shift + C
      

  3.   

    按了Ctrl+Shift+C然后他说:Expected '=' but '(' found in TForm1
      

  4.   

    我昏,你灵活一点。T***.LabelMouseMove
    那个T***是你的类名字,根据不同的名字,就有不同的***
      

  5.   

    我明白,我就是用的TForm1阿!
      

  6.   

    在TForm1的public 部分加入
    procedure LabelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
      

  7.   

    好了好了,原来要先声名再按Ctrl + Shift + C阿!
    谢谢了!
      

  8.   

    呵呵
    先在public声明后声明然后在implementation{$R *.dfm}
    后定义因为过程是这个窗体的
    所以定义时前面要加上T窗体名:如:
    public
       procedure LabelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
    implementation{$R *.dfm}
    procedure TmainFrom.LabelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);     //假设窗口名为:mainFrom