hi,
ich in meinem dateimanager mit unten stehender funktion eine zahl aus, um den passenden imageindex eines objekts in einer dateiliste im listview je nach dateityp herauszubekommen. (also e ist dann der dateiname)
Delphi-Quellcode:
function TFenster.GetImgIndex(e:
String): Byte;
var
i: Integer;
begin
RESULT := 17;
i := LastDelimiter('
.'+PathDelim+DriveDelim, e);
if (i > 0)
and (e[i] = '
.')
then begin
e := LOWERCASE(Copy(e, i+1, MaxInt));
if (e='
exe')
then
RESULT := 6
else if (e='
jpg')
or (e='
jpeg')
or (e='
bmp')
or (e='
gif')
or (e='
png')
then
RESULT := 7
else if (e='
htm')
or (e='
html')
then
RESULT := 8
else if (e='
txt')
or (e='
ini')
or (e='
inf')
or (e='
css')
then
RESULT := 9
else if (e='
rar')
or (e='
zip')
or (e='
cab')
then
RESULT := 10
else if (e='
mp3')
or (e='
wav')
or (e='
ogg')
or (e='
mid')
or (e='
wma')
then
RESULT := 11
else if (e='
mpg')
or (e='
mpeg')
or (e='
mpe')
or (e='
wmv')
or (e='
avi')
or (e='
asf')
or (e='
mov')
or (e='
rm')
then
RESULT := 12
else if (e='
doc')
or (e='
rtf')
or (e='
pdf')
or (e='
ppt')
then
RESULT := 13
else if (e='
hlp')
or (e='
chm')
then
RESULT := 14
else if (e='
swf')
then
RESULT := 15
else if (e='
lnk')
then
RESULT := 16
end;
end;
ist es hier angebrachter, einfach den dateityp mit der eigenschaft getimageindex herauszubekommmen (was die scrollgeschwindigkeit beeinträchtigt) oder gleich in der suche (ich weise mit dieser funktion gleich in der suche den imageindex zu, was allerdings das einlesen der dateien verlangsamt).
nun meine frage: wie kann ich die obenstehende funktion "schneller machen" (also geschickterer code)?