Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.18;
Скачать: CL | DM;

Вниз

Как получить сокращенный путь к каталогу?   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.036 c
1-1119987879
Чайник
2005-06-28 23:44
2005.07.18
Проблема с целочисленной переменной.


1-1120304679
Draught
2005-07-02 15:44
2005.07.18
Edit скрытый и активный


1-1119787721
Руслана
2005-06-26 16:08
2005.07.18
Почему происходит ошибка?


8-1111389237
Strech
2005-03-21 10:13
2005.07.18
Быстрая подсветка в 32 битах


9-1111140209
qwe
2005-03-18 13:03
2005.07.18
3D-город (GlScene)