----------开发环境:D7
这是一个简单的回调函数,再结合回调函数的相关资料(资料没有提供),能快速的掌握回调函数;
回调函数定义在Unit2中
--------------------
---------Unit1开始
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure mytest(str:string);
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.mytest(str: string);
begin
Edit2.Text :=str;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
getss(mytest,StrToFloatDef(Edit1.Text,1));
end;
end.
----------Unit1结束
----------------Form1开始
object Form1: TForm1
Left = 786
Top = 461
Width = 273
Height = 283
Caption = ‘Form1‘
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = ‘MS Sans Serif‘
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Button1: TButton
Left = 104
Top = 136
Width = 75
Height = 25
Caption = ‘Button1‘
TabOrder = 0
OnClick = Button1Click
end
object Edit1: TEdit
Left = 64
Top = 64
Width = 121
Height = 21
ImeName = ‘中文(简体) - 搜狗拼音输入法‘
TabOrder = 1
Text = ‘Edit1‘
end
object Edit2: TEdit
Left = 64
Top = 104
Width = 121
Height = 21
ImeName = ‘中文(简体) - 搜狗拼音输入法‘
TabOrder = 2
Text = ‘Edit2‘
end
end
-----------------Form1结束
------------Unit2开始------
unit Unit2;
interface
uses Windows,Classes;
type
Tmyfun=procedure(str:string) of object ;
function getss(MyFun:Tmyfun;mydouble:double=0 ):integer ;
implementation
function getss(MyFun:Tmyfun;mydouble:double=0 ):integer ;
begin
Result:=0;
if mydouble>0 then
begin
MyFun(‘正数‘);
end
else
if mydouble=0 then
begin
MyFun(‘零‘);
end
else
begin
MyFun(‘负数‘);
end;
end;
end.
------------Unit2结束--------
原文:https://www.cnblogs.com/dmqhjp/p/14772029.html