Thema: Delphi wieso overload?

Einzelnen Beitrag anzeigen

RaSoWa1

Registriert seit: 1. Jun 2006
Ort: Halle/Saale
140 Beiträge
 
Delphi 2010 Professional
 
#1

wieso overload?

  Alt 15. Nov 2009, 12:30
Hallo,

ich bin jetzt dabei meine Projekte von D6 nach D2010 zu portieren.
Wieso meldet D2010: "[DCC Fehler] xxxUnit1.pas(15): E2254 Die überladene Prozedur 'xxxDeleAllFiles' muss mit der Direktive 'overload' gekennzeichnet sein" bei folgenden Code:
Delphi-Quellcode:
unit xxxUnit1;

interface

uses ToolDef;

function xxxDeleAllFiles(Path, Mask: string; AllVerz, DeleSubDir, ToPapierkorb: boolean; WaitProc: TProc = nil): boolean; overload;

implementation

uses SysUtils,
     ToolFile;


function xxxDeleAllFiles(Path, Mask: string; AllVerz, DeleSubDir, ToPapierkorb: boolean; WaitProc: TProc = nil): boolean;
var Find : integer;
    SR : TSearchRec;
    fn : string;
begin
  result := False;
  Path := PathToFilename(Path, '');
  Find := FindFirst(Path+Mask, faAnyFile-faDirectory, SR);
  while Find = 0 do begin
    if (SR.Name <> '.') and (SR.Name <> '..')
    then begin
      fn := PathToFileName(Path, SR.Name);
      if (SR.Attr and SysUtils.faReadOnly) <> 0 // geschützte Datei?
      then begin
        FileSetAttr(fn, SR.Attr and not(SysUtils.faReadOnly)); // schreibschutz entfernen
        DeleFileToPapierkorb(fn); // und in Papaierkorb löschen
        end
      else
        if ToPapierkorb
        then DeleFileToPapierkorb(fn)
        else DeleteFile(fn);
      result := True;
      if (@WaitProc <> Nil)
      then WaitProc;
      end;
    Find := FindNext(SR);
    end;
  FindClose(SR);
  if AllVerz
  then begin
    Find := FindFirst(Path+'*.*', faDirectory, SR);
    while Find = 0 do begin
      if (SR.Name <> '.') and (SR.Name <> '..')
          and (SR.Attr and faDirectory > 0)
      then begin
        fn := Path+SR.Name+'\';
        result := xxxDeleAllFiles(fn, Mask, True, DeleSubDir, ToPapierkorb) or result;
        if DeleSubDir and result
        then RemoveDir(fn);
        end;
      Find := FindNext(SR);
    end;
    FindClose(SR);
    end;
end;

end.
Ich habe extra xxx vorangestellt, damit die Funktion eindeutig ist. Es gibt nirgendwo eine Methode mit gleichen Namen. Was soll Überladen werden?

Gruß Klaus
Klaus
  Mit Zitat antworten Zitat