
Zitat von
turboPASCAL:
Nur, ich muss halt selber ran.

Die paar Sekunden habe ich dann doch grad mal.

Delphi-Quellcode:
function MinimizeName(
const Filename:
string;
DC: HDC; MaxLen: Integer):
string;
var
b:
array [0..MAX_PATH]
of Char;
R: TRect;
TextSize: TSize;
begin
StrCopy(b, PChar(Filename));
GetTextExtentPoint32(
DC, PChar(FileName), Length(FileName), TextSize);
R := Rect(0, 0, MaxLen, TextSize.cy);
if DrawText(
DC, b, Length(Filename), R,
DT_SINGLELINE
or DT_MODIFYSTRING
or DT_PATH_ELLIPSIS
or DT_CALCRECT
or DT_NOPREFIX) > 0
then
Result := b
else
Result := Filename;
end;
// EDIT:
Wobei man für die Höhe ggf. wie im Beispiel auch nur etwas Kurzes statt des gesamten Dateinamens als schnelleren Ersatz nehmen kann.