I'd like to know if this is possible in Delphi (or if there's a clean way around it):
type
TSomething = record
X, Y : Integer;
end;
GetSomething( x, y )
-> Returns record with those values.
... and then you have this function with TSomething
as parameter, and you want to default it as
function Foo( Something : TSomething = GetSomething( 1, 3 );
The compiler spits an error here, however I'm not sure if there's a way around it!
Can this be done?
Use overloading:
procedure Foo(const ASomething: TSomething); overload;
begin
// do something with ASomething
end;
procedure Foo; overload;
begin
Foo(GetSomething(1, 3));
end;
The easiest way is to use overloaded procedures:
program TestOverloading;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
TSomething = record
X,Y : integer;
end;
const
cDefaultSomething : TSomething = (X:100; Y:200);
procedure Foo(aSomething : TSomething); overload;
begin
writeln('X:',aSomething.X);
writeln('Y:',aSomething.Y);
end;
procedure Foo; overload;
begin
Foo(cDefaultSomething);
end;
begin
Foo;
readln;
end.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With