Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2009, 17:32   #1
Aндрей
Пользователь
 
Регистрация: 15.02.2009
Сообщений: 33
По умолчанию Уменьшение длины имени

Мне в программе нужно укоротить путь до папки (использую TShellTreeView).
Код:
function ShortFileName(const FileName: string): string;
var aTmp: array[0..255] of Char;
begin
  if not DirectoryExists(FileName)  //FileExists(FileName)
    then Result:=''
    else if GetShortPathName(PChar(FileName), aTmp, Sizeof(aTmp)-1) = 0
      then Result:= FileName
      else Result:= StrPas (aTmp);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  Edit2.Text:=(ShortFileName(Edit1.Text));
end;
Как я понял, чтобы эта функция работала, обязательно должен существовать файл, к которому указывается путь (иначе выдается пустое значение). А можно как-нидуть без файла обойтись? Например, чтобы она укорачивала такой путь:
C:\Documents and Settings\Андрей\Мои документы\DelphiWorld6\base\

Последний раз редактировалось Aндрей; 19.05.2009 в 17:40.
Aндрей вне форума Ответить с цитированием
Старый 19.05.2009, 18:13   #2
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

Функция ExtractFilePath()

Простите, не то. перепутал.
Манжосов Денис :) вне форума Ответить с цитированием
Старый 19.05.2009, 18:52   #3
MalCer
Форумчанин
 
Аватар для MalCer
 
Регистрация: 15.07.2008
Сообщений: 615
По умолчанию

ExtractFileDir(Application.ExeName) ;// только вернет путь к файлу без слэша на конце
xor eax, eax
xchg [eax], eax
MalCer вне форума Ответить с цитированием
Старый 20.05.2009, 16:52   #4
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

Например так:
Код:
uses
   FileCtrl;

 procedure TForm1.Button1Click(Sender: TObject);
 begin
   if Opendialog1.Execute then
     label1.Caption := MinimizeName(Opendialog1.FileName,
                                    label1.Canvas, label1.Width);
 end;
Alter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Уменьшение счетчика в записи azat20 Общие вопросы C/C++ 1 22.02.2009 22:03
уменьшение ширины таблицы Viteef HTML и CSS 5 18.02.2009 23:59
Увеличение и уменьшение картинок zzzzz Мультимедиа в Delphi 2 30.08.2008 20:53
Уменьшение размера ехе файлов Terran Общие вопросы Delphi 20 23.01.2008 23:03