AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

wieso overload?

Ein Thema von RaSoWa1 · begonnen am 15. Nov 2009 · letzter Beitrag vom 15. Nov 2009
Antwort Antwort
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
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: wieso overload?

  Alt 15. Nov 2009, 12:36
Vielleicht weil du diese Function inn Zeile 7 so deklariert hast?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#3

Re: wieso overload?

  Alt 15. Nov 2009, 12:39
@SirT, Die steht doch in der interface-Klausel also für den Export.

//Edit:
Also das overload sollte da weg. Oder wurde es hinzugefügt weil Delphi dort meckert ?
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: wieso overload?

  Alt 15. Nov 2009, 12:39
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.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
RaSoWa1

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

Re: wieso overload?

  Alt 15. Nov 2009, 12:51
Danke,

das TProc war es.

(das Overload ist nur ein vergessenes Überbleibsel vom vielen testen)


Gruß Klaus
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz