EDIT:
Is there a better way of doing this ?
TPendingBets = class(TDataModule) private public function GetBdy(out IdEvent : Integer ) : Boolean; overload; function GetBdy(out IdEvent : Integer; out idBetType : TBetTypes) : Boolean; overload; function GetBdy(out IdEvent : Integer; out idBetType : TBetTypes; Out TotalOrgStake,Price : Double; out PriceError :Boolean): Boolean; overload; end; implementation
////////////////////
function TPendingBets.GetBdy(out IdEvent : Integer ): Boolean; var idBetType : TBetTypes; TotalOrgStake,Price : Double; PriceError :Boolean; begin result := GetBdy(IdEvent,idBetType,TotalOrgStake,Price,PriceError); end;
////////////////////
function TPendingBets.GetBdy(out IdEvent : Integer; out idBetType : TBetTypes): Boolean; var TotalOrgStake,Price : Double; PriceError :Boolean; begin result := GetBdy(IdEvent,idBetType,TotalOrgStake,Price,PriceError); end;
////////////////////
function TPendingBets.GetBdy(out IdEvent : Integer; out idBetType : TBetTypes; Out TotalOrgStake,Price : Double; out PriceError :Boolean): Boolean; begin result := false; if cdBdy.Eof = False then begin IdEvent := cdBdy.FieldByName(IdEvent ).AsInteger); idBetType := TBetTypes(cdBdy.FieldByName(idBetType ).AsInteger); //. //. result := True; end; end;
NOTE:
As my initial question was not very clear I have removed part of it
I think the overload solution is quite a good solution, at least it is one. Other programming languages require you to declare functions with different names.
Another approach may be a dynamic array parameter like: