Форум: "Основная";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];
ВнизКак получить сокращенный путь к каталогу? Найти похожие ветки
← →
KorD (2005-06-29 15:43) [0]Есть длинный путь, к примеру
C:\Program Files\Common Files\Borland Shared\Images\Icons\
надо вывести его в сокращенном виде, типа
C:\Program Files\...\Icons\
Подскажите, пожалуйста, функцию.
← →
-=XP=- © (2005-06-29 15:46) [1]DrawText(Canvas.Handle, ... DT_PATH_ELLIPSIS);
← →
KorD (2005-06-29 17:06) [2]я вроде функцию API гдето встречал, которая возвращает сокращенных путь, вот только где не помню :-(
в винде повсюду применяется такое сокращение,
врядли что только через DrawText пользуют
← →
-=XP=- © (2005-06-29 17:21) [3]я вроде функцию API гдето встречал
Дежавю? По какому критерию будем "усекать"? По количеству символов в строке?
← →
RDA (2005-06-29 17:24) [4]Выдрал из ФИБ+
lbDBName.Caption:=Copy(ADatabaseName,1,10)+"..."+
Copy(ADatabaseName,Length(ADatabaseName)-32,MaxInt);
← →
-=XP=- © (2005-06-29 17:27) [5]Copy(ADatabaseName,1,10)
Магическое число?
← →
Просто Джо © (2005-06-29 18:20) [6]См. модуль FileCtrl функция
MinimizeName
. Она выводит надпись на канву (на манерDrawText
) но из тела самой функции можешь выдрать алгоритм составления строки - он несложен, впрочем.
← →
KorD (2005-06-29 18:34) [7]Нашел похожую тему:
Функция преобразования длинного пути в короткий
http://delphi.vline.ru/cgi-bin/forum.pl?n=5&id=1117971408
и по результатам ее прочтения написал функцию,
кому надо пробуйте
function TfAccLAB.GetCompactPath(mRect:TRect; mStr:String):String;
var
P: PChar;
R: TRect;
begin
P := AllocMem(Length(mStr) + 1);
StrCopy(P, PChar(mStr));
SetRect(R, mRect.Left, mRect.Top, mRect.Right, mRect.Bottom);
DrawText(Canvas.Handle, P, Length(mStr), R,
DT_SINGLELINE or DT_CALCRECT or DT_LEFT or DT_MODIFYSTRING or DT_PATH_ELLIPSIS);
Result := P;
FreeMem(P);
end;
вызов:
GetCompactPath(Label1.Canvas.ClipRect, Путь_к_файлу)
← →
Просто Джо © (2005-06-29 23:11) [8]
> [7] KorD (29.06.05 18:34)
Зачем велосипеды? Ведь уже посоветовали: [1] и [6].
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.035 c