我有這個拉扎勒斯程序:拉撒路 - 爲什麼我不能將事件分配給運行時組件?
unit Unit2;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls, ComCtrls;
type
{ TForm2 }
TForm2 = class(TForm)
procedure OnTlacitkoClick(Sender: TObject);
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormCreate(Sender: TObject);
tlac:TButton;
private
{ private declarations }
public
{ public declarations }
end;
var
Form2: TForm2;
implementation
{ TForm2 }
procedure TForm2.OnTlacitkoClick(Sender: TObject);
begin
showmessage('helloworld');
end;
procedure TForm2.FormCreate(Sender: TObject);
var i,j:integer;
begin
tlac:=TButton.Create(Form2);
tlac.OnClick:=OnTlacitkoClick;
tlac.Parent:=Form2;
tlac.Left:=100;
tlac.Top:=100;
end;
initialization
{$I unit2.lrs}
end.
但是編譯器說:unit2.pas(63,32)錯誤:用於調用 「OnTlacitkoClick」 在tlac.OnClick指定的參數數目錯誤:= OnTlacitkoClick;表達。我已經搜索並認爲這是Delphi中的合法表達。我只想將OnTlacitkoClick註冊爲tlac.OnClick事件,而不是調用此過程。代碼中是否存在某些錯誤,或者我是否應該在Lazarus/Freepascal中做到這一點?
謝謝。