![]() |
wieso overload?
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:
Ich habe extra xxx vorangestellt, damit die Funktion eindeutig ist. Es gibt nirgendwo eine Methode mit gleichen Namen. Was soll Überladen werden?
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. Gruß Klaus |
Re: wieso overload?
Vielleicht weil du diese Function inn Zeile 7 so deklariert hast?
|
Re: wieso overload?
@SirT, Die steht doch in der interface-Klausel also für den Export. :gruebel:
//Edit: Also das overload sollte da weg. Oder wurde es hinzugefügt weil Delphi dort meckert ? |
Re: wieso overload?
Es könnte sein, dass TProc in einer der im Implementation-Abschnitt eingebundenen Units neu definiert wird. Du müsstest dann in der Definition den Bezeichner TProc durch DeklarierendeUnit.TProc qualifizieren.
|
Re: wieso overload?
Danke,
das TProc war es. (das Overload ist nur ein vergessenes Überbleibsel vom vielen testen) Gruß Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz