Здравствуйте.
Не работает перегрузка функций.
Пример.
Всё время вызывается перегруженная функция TBase.Create(Value: LongWord), вне зависимости от передаваемого параметра
в Delphi 10.4.2 Sydney, в Delphi 7 всё работает корректно, т.е. в зависимости от передаваемого параметра вызывается соответствующая перегруженная функция.
Код:
TTypeFunc = function: LongWord of object;
TBase=class
protected
fFuncValue: TTypeFunc;
fValue: LongWord;
public
constructor Create (Func: TTypeFunc); overload;
constructor Create (Value: LongWord); overload;
end;
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
fBaseProp: TBase;
function getValue: LongWord;
public
end;
constructor TBase.Create(Func:TTypeFunc);
begin
fFuncValue := Func;
fValue := 0;
end;
constructor TBase.Create(Value: LongWord);
begin
fFuncValue := nil;
fValue := Value;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//!!! Идет вызов TBase.Create(Value: LongWord) а не
//TBase.Create(Func:TTypeFunc)
fBitProp := TBase.Create(getDParams);
end;
Админ: Пользуемся тегами при оформлении кода!