Главная страница
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.046 c
14-1119428766
leon777
2005-06-22 12:26
2005.07.18
доступ к grd файлам


14-1119942538
Vlad Oshin
2005-06-28 11:08
2005.07.18
Вчера умерла жена Цоя. Будут ли кино-пробы 2?


3-1118211442
Iova
2005-06-08 10:17
2005.07.18
Запрос по вставке данных в таблицу с участием полей BLOB


14-1119904045
BigMac
2005-06-28 00:27
2005.07.18
Forex


6-1112885724
msgipss
2005-04-07 18:55
2005.07.18
Можно ли узнать кто открыл файл на сетевом диске