目前我正在将用VBA编写的项目转换为Delphi,并且偶然发现了使用Optional参数转换一些Subs的问题.比方说,有一个Sub声明(只是一个例子,实际的Subs有多达10个可选参数):
Sub SetMark
(x0 As Double, y0 As Double,
Optional TextOffset As Integer =5,
Optional TextBefore As String = "",
Optional Text As String = "",
Optional TextAfter As String = "mm",
Optional Color As String = "FFFFFF",
Optional ArrowPresent As Boolean = True)
Run Code Online (Sandbox Code Playgroud)
那个Sub随后可以这样调用:
Call SetMark (15, 100,,,"135")
Call SetMark (100, 100, 8,, "My text here..", "")
'a lot of calls here
Run Code Online (Sandbox Code Playgroud)
这里的Optional参数非常灵活,你可以省略它们中的任何一个,并且你也可以为它们中的任何一个赋值.与Delphi不同.
Procedure SetMark
(x0: real; y0: real,
TextOffset: Integer =5;
TextBefore: ShortString = …Run Code Online (Sandbox Code Playgroud)