小编Dil*_*uin的帖子

delphi中的高阶过程

我试图引用一个过程作为另一个过程的参数,但在理解文档时遇到问题。(http://docwiki.embarcadero.com/RADStudio/Sydney/en/Procedural_Types_(Delphi)

据我了解,我需要为该过程创建一个新类型..

type
  TCallback = procedure of object;
Run Code Online (Sandbox Code Playgroud)

并将高阶过程声明为 procedure HigherOrder(pProc: TCallback);

我在尝试调用函数时收到编译错误“E2010 Incompatible types: 'TCallBack' and 'procedure, untyped pointer or untyped parameter'”(当单击按钮时)

type
  TCallBack = procedure of object;
  TfrmMain = class(TForm)
    btnAct: TButton;
    procedure btnActClick(Sender: TObject);
  private
    procedure HigherOrder(pProc: TCallback);
    procedure Callback();
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.dfm}

{ TfrmMain }

procedure TfrmMain.btnActClick(Sender: TObject);
begin
  HigherOrder(Callback()); <--Error occurs here
end;

procedure TfrmMain.Callback;
begin
  //Do some stuff
end; …
Run Code Online (Sandbox Code Playgroud)

delphi pascal

4
推荐指数
1
解决办法
178
查看次数

如何访问 Sender 参数引用的组件的属性(触发事件的组件)

我是 delphi 和 pascal 的新手,想知道是否有办法获取/访问发送者在过程中引用的组件的属性。

更具体地说,我想制作一个更改标签的标题属性的过程,该标签是Sender引用的组件。我想象这个过程看起来像:

procedure TForm1.LabelEdit(Sender: TObject);
begin
    Sender.caption := 'Sample Text';
end;
Run Code Online (Sandbox Code Playgroud)

自然这行不通,但可以做类似或类似的事情吗?

delphi pascal

1
推荐指数
1
解决办法
432
查看次数

标签 统计

delphi ×2

pascal ×2