Главная страница
    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.04 c
14-1119936318
Ega23
2005-06-28 09:25
2005.07.18
С днем рождения! 28 июня


1-1119357161
iskatel
2005-06-21 16:32
2005.07.18
как отладить службу?


14-1119803589
Tirex
2005-06-26 20:33
2005.07.18
Сколько стрелок на будильнике?


14-1119528426
Sir John
2005-06-23 16:07
2005.07.18
Новые компоненты Делфи )))


3-1118231725
SaFy
2005-06-08 15:55
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский