나는이 나사로 프로그램이 있습니다Lazarus - 런타임 구성 요소에 이벤트를 할당 할 수없는 이유는 무엇입니까?
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) 오류 : 호출 tlac.OnClick에에 "OnTlacitkoClick"에 지정된 매개 변수의 수가 잘못을 = OnTlacitkoClick; 표현. 나는 이것을 델파이의 합법적 인 표현이라고 생각하고 생각했다. 이 절차를 호출하지 말고 tlac.OnClick 이벤트로 OnTlacitkoClick을 등록하기 만하면됩니다. 어떤 코드가 잘못되었거나 Lazarus/Freepascal에서 다르게해야합니까?
감사합니다.