函数和过程参数能不能是一个函数或过程
function BuildChild(aOwner: TComponent; aChildClass: TChildFormClass;const Pro:TProcedure=nil): TChildForm;
这样写可以吗
function BuildChild(aOwner: TComponent; aChildClass: TChildFormClass;const Pro:TProcedure=nil): TChildForm;
这样写可以吗
解决方案 »
- 提个DelphiX的使用问题
- Delphi擂台赛新鲜出炉
- 我為窗體加了一個事件,可是老出錯,大家來看看,謝謝!
- 怎么用fastreport设计一个侧边拦的问题,有200送的
- 简单问题:如何在RichEdit中屏蔽复制功能?
- 我打开了delphi7中的demo例子后,想修改他,可好多控件都没了???
- 如何用FMPdefs直接控制神龙卡的音量?
- 如何实现??想在Form1的DBGIRD里,当双击某一行数据时(Options.dgrowselect=True),会自动弹出一个Form2来,Form2里有几个Edit,依次显
- 在sql 裡能成功修改,但在delphi裡不能完全批量修改記錄
- 如何获取CPU序列号?
- 在QuickReport里如何对每一页进行统计,急急!
- 组件的编写:加入的函数类树显示不出!
给个例子
在上面的函数中,我想让参数Pro,做到可以执行,也可以不执行,我怎么做到
begin
if Assign(Pro) then
....
end;//或者再加一个参数
TMax = function (a, b :integer) :integer of object;TAClass = class
private
a, b :integer;
public
Max :TMax;
function CalcMax(a, b :integer):integer;
procedure Calc(Max :TMax);
end;function TAClass.CalcMax(a, b:integer):integer;
begin
if a > b then
result := a
else
result := b;
end;procedure TAClass.Calc(Max :TMax);
begin
ShowMessage(IntToStr(Max(a, b)));
end;procedure TForm1.Button1Click(Sender :TObject);
var
TA :TAClass;
begin
TA := TAClass.Create;
TA.Max := TA.CalcMax;
TA.Calc(TA.Max);
end;
delphi里的事件就是这么实现的
用函数指针
procedure TCustomForm.Paint;
begin
if Assigned(FOnPaint) then FOnPaint(Self);
end;在看看FOnPaint的定义
FOnPaint: TNotifyEvent;
TNotifyEvent = procedure(Sender: TObject) of object;在看看属性FOnPaint的赋值
property OnPaint: TNotifyEvent read FOnPaint write FOnPaint stored IsForm;
procedure TCustomForm.DoClose(var Action: TCloseAction);
begin
if Assigned(FOnClose) then FOnClose(Self, Action);
end;procedure TCustomForm.DoHide;
begin
if Assigned(FOnHide) then FOnHide(Self);
end;procedure TCustomForm.DoShow;
begin
if Assigned(FOnShow) then FOnShow(Self);
end;
等等都是一样的
TMax = function (a, b :integer) :integer of object;然后这个类的实例就可以做为参数被传入到函数里了。并且它的实例可以直接加上指定类型的参数来运行。
TMax = function (a, b :integer) :integer of object;然后这个类的实例就可以做为参数被传入到函数里了。
procedure Calc(Max :TMax);并且它的实例可以直接加上指定类型的参数来运行。
Max(a, b);
Pro我是不知道是什么函数或过程
Pro我是不知道是什么函数或过程,我的Pro是TProcedure类型,我怎么做