我尝试调用FormClose方法,但是当我尝试时,我的参数有问题:
FormName.FormClose(nil, CaFree);
通常我可以使用nil
或sender as TOBject
使用参数调用组件的事件处理程序。但现在我收到了错误:
常量对象不能作为var参数传递
我为这两个TObject和TAction值尝试了很多组合。对于TObject,我尝试了`sender as TObject',以及TAction所有参数,如CaFree等。
答案 0 :(得分:4)
第二个参数是var
参数,它是编译器错误消息告诉您的参数。所以你需要传递一个变量。你无法传递文字。
var
Action: TCloseAction;
....
Action := caFree;
Name.FormClose(nil, Action);
请注意,您几乎肯定不应该这样做。您不打算直接调用事件处理程序。框架将在适当的时候调用它们。我认为您错误地认为您需要直接触发此事件处理程序,甚至在表单关闭的正常情况之外执行代码。
作为一般规则,如果需要直接在事件处理程序中调用代码,那么通常的方法是首先将其提取到一个可以直接调用的单独方法。然后重构事件处理程序以调用该单独的方法。