Hallo zusammen,
bitte entschuldigt den merkwürdigen Titel; mir wollte einfach kein besserer einfallen...
Es geht um Folgendes:
Für meine Bedürfnisse an "Dateisuche" habe ich mich für die Klasse "
TFindFile" von DelphiArea entschieden. Kann einfach alles, was man sich so wünscht.
Für einfache Aufgaben wollte ich nun die Klasse ableiten, sodass z.B. ein Stringliste mit den Ergebnissen gefüllt wird, also:
Delphi-Quellcode:
TFindFileListBasic = class(FindFile.TFindFile)
private
SL: TStringList;
FStoreFullname: Boolean;
FTotalFileSize: Int64;
procedure OnFileMatchEvent(Sender: TObject; const FileInfo: TFileDetails);
public
constructor Create(AOwner: TComponent);
destructor Destroy; override;
function SearchForFiles: TStringList;
published
property StoreFullName: Boolean read FStoreFullname write FStoreFullname;
property FileSizeOfList: Int64 read FTotalFileSize;
end;
Der Aufruf sieht dann etwa so aus, um alle Verzeichnisse im Root von C: zu finden:
Delphi-Quellcode:
var folderList: TStringList;
with TFindFileListBasic.Create(Self) do begin
Criteria.Files.Location := 'C:\';
Criteria.Files.Subfolders := false; // Nur auf oberster Ebene suchen
Criteria.Attributes.Directory := fsSet; // Nur Verzeichnisse suchen
folderList := SearchForFiles; // Verzeichnisliste erstellen
.
.
Free;
end;
Mein Problem ist das Element
fsSet, welches als Aufzählungstyp in der Original-
Unit FileFind deklariert ist:
TFileAttributeStatus = (fsIgnore, fsSet, fsUnset, fsAnySet, fsAnyUnset);
Nur wegen dieses Typs muss ich (neben meiner
Unit mit der abgeleiteten Klasse) auch noch die Original-
Unit einbinden. Meine Versuche, das zu umgehen, sind leider gescheitert: Keine der beiden folgenden Zeilen in meiner
Unit führen zum Erfolg:
Delphi-Quellcode:
TFileAttributeStatus = FindFile.TFileAttributeStatus;
// Fehler: Undeclared Identifier: 'fsSet'
TFileAttributeStatus = (fsIgnore, fsSet, fsUnset, fsAnySet, fsAnyUnset);
// Fehler: Incompatible types
Hat jemand eine Idee, wie ich in meiner
Unit dieses Type "TFileAttributeStatus" bereitstellen kann, ohne in der Applikation die
Unit "FileFind" einzubinden?
P.S. Klar, das ist nur Kosmetik. Mich würde nur interessieren, wie/ob man sowas machen kann, also einen Typ aus einer
Unit übernehmen und exportieren...