Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-1120406292
sofs
2005-07-03 19:58
2005.07.18
Загрузка большого кол-ва информации из массива в RichEdit


4-1115867002
Antonn
2005-05-12 07:03
2005.07.18
Размер приложения в памяти


4-1116440529
Jetus
2005-05-18 22:22
2005.07.18
Как получить всю возможную инфу о сервисе в ХР?


14-1118924278
DeMoN-777
2005-06-16 16:17
2005.07.18
Странные письма


14-1119547570
Olivka
2005-06-23 21:26
2005.07.18
Сколько стоит программа





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский