У родителя есть 2 метода:
procedure Load(const Path: string; var fconfig: text); virtual; overload;
procedure Load(const Path, FileName: string); overload;
Реализованы так:
procedure TPoint.Load(const Path: string; var fconfig: text);
begin
//обработка файла
end;
//открытие файла
procedure TPoint.Load(const Path, FileName: string);
var
fconfig: text;
begin
assign(fconfig,Path+FileName+'\config.txt');
reset(fconfig);
Load(Path+FileName+'\',fconfig);
close(fconfig);
end;
и у наследника:
procedure TTitle.Load(const Path: string; var fconfig: text);
var
finf: text;
finfName: string;
begin
readln(fconfig);
readln(fconfig,FinfName);
inherited Load(Path,finfName);
//последующая обработка файла
end;
Проблема в том, что когда в TTitle.Load происходит inherited Load(Path,finfName); далее вызывается TPoint.Load(const Path, FileName: string); который в свою очередь вместо мной желаемого procedure TPoint.Load(const Path: string; var fconfig: text); вызывает полиморфный метод наследника TTitle.Load(const Path: string; var fconfig: text); т.е. теоретически происходит зацикливание, а практически неправильная прочитка файла.
Как эту ситуацию обойти?
Т.е. чтобы inherited Load(Path,finfName); выполнял только методы родителя или как-то так.