Unit1:
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ComCtrls, Types;
type
{ TForm1 }
TForm1 = class(TForm)
ListView1: TListView;
procedure FormCreate(Sender: TObject);
procedure ListView1MouseWheelDown(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
private
public
end;
var
Form1: TForm1;
implementation
uses
Unit2;
{$R *.lfm}
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
ListView1.OnMouseWheelDown:=@Unit2.TForm2.ListView1MouseWheelDown;
end;
end.
Unit2:
unit Unit2;
{$mode ObjFPC}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs;
type
{ TForm2 }
TForm2 = class(TForm)
private
public
procedure ListView1MouseWheelDown(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
end;
procedure pro;
var
Form2: TForm2;
implementation
procedure pro;
begin
end;
{$R *.lfm}
{ TForm2 }
procedure TForm2.ListView1MouseWheelDown(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
end;
end.
Compilation error:
unit1.pas(41,32) Error: Incompatible types: got "<address of procedure(TObject;TShiftState;TPoint;var Boolean) of object;Register>" expected "<procedure variable type of procedure(TObject;TShiftState;TPoint;var Boolean) of object;Register>"
I want to put the listview MouseWheelDown event in another unit, but how do I handle the compilation error :'(