Ahoi,
ich habe eine Prozedur mit einem Record als Parameter. Ist es möglich, im Prozeduraufruf die Felder des Records direkt anzugeben. Etwa so wie unten exemplarisch gezeigt?
Delphi-Quellcode:
type
TMyRecord = record
FeldA: string;
FeldB: Integer;
FeldC: string;
end;
{...}
procedure Test(Param: TMyRecord);
begin
{...}
end;
procedure Produce;
begin
Test(['Foo', 1, 'Bar']);
end;
Ich baue für sowas meist eine class function in den Record, die ermöglicht:
Delphi-Quellcode:
TMyRecord = record
FeldA: string;
FeldB: Integer;
FeldC: string;
class function Init(const AFieldA: String; AFieldB: Integer; AFieldC: String): TMyRecord ; static;
end;
class function TMyRecord.Init(const AFieldA: String; AFieldB: Integer; AFieldC: String): TMyRecord ;
begin
Result.FeldA:= AFieldA
Result.FeldB:= AFieldB
Result.FeldC:= AFieldC
end;
procedure Produce;
begin
Test(TMyRecord.Init('Foo', 1, 'Bar'));
end;