Главная страница
    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.039 c
3-1117516389
kyn66
2005-05-31 09:13
2005.07.18
Ввод непечатаемых символов в строку пароля БД


9-1112788372
Gaiti
2005-04-06 15:52
2005.07.18
Problems with animation


1-1120267488
МП
2005-07-02 05:24
2005.07.18
как программно копировать выделенный текст, из другой программы


1-1120407509
SergP
2005-07-03 20:18
2005.07.18
Проблемы с TThread.


1-1120153988
Виталька2005
2005-06-30 21:53
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский