调用Handle函数系统报错,可已经在USES中加入了Windows,
程序中有如下语句:SendMessage(Handle,Message.Msg,Message.WParam,Message.LParam);
错误信息:
[Error] Unit1.pas(40): Undeclared identifier: 'Handle'
[Error] Unit1.pas(20): Unsatisfied forward or external declaration: 'TForm1.MouseWheel'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

解决方案 »

  1.   

    uses Forms;還有 Form1.MouseWheel 這些聲明都有問題!!!
      

  2.   

    源程序如下:
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, DB, ADODB, ExtCtrls, DBCtrls, Grids, DBGrids ;type
      TForm1 = class(TForm)
        DBGrid1: TDBGrid;
        DBNavigator1: TDBNavigator;
        ADOTable1: TADOTable;
        DataSource1: TDataSource;  private
        { Private declarations }
      public
        { Public declarations }
        procedure MouseWheel(var Message: TMessage);  end;var
      Form1: TForm1;implementation{$R *.dfm}procedure MouseWheel(var Message: TMessage);
    begin
    Message.Msg := WM_KEYDOWN;
    Message.lParam  := 0;if Message.WParam > 0 then
     Message.WParam := VK_UP
    else
     Message.WParam := VK_DOWN;SendMessage(form1.Handle,Message.Msg,Message.WParam,Message.LParam);end;end.
      

  3.   

    implementation
    procedure Tform1.MouseWheel(var Message: TMessage);//这是方法。要加限定
      

  4.   

    你上面把MouseWheel声明为TForm1的函数,而下面的实现部分错了
    应该是
    procedure TForm1.MouseWheel(var Message: TMessage);其他的没问题了,改为Form1.Handle是对的
      

  5.   

    TO:highbury(海布里)
    改过以后,程序可以运行,但不知怎么回事,用MOUSE的滚轮还是不能使DBGRID1组件的竖滚动条,用鼠标的滚轮可以滚动