Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];

Вниз

"..." в пути к файлу   Найти похожие ветки 

 
BobbyDigital   (2005-10-26 18:05) [0]

Извините за часто задаваемый вопрос, но все же.
У меня на форме показыватся путь к открываемому файлу, вот и если путь оказывается слишком длинным как корректно поставить троеточие в пути.
Например:
C:\Program Files\Adobe\...\Utilities\ScriptListener.8li


 
Lexer ©   (2005-10-26 18:08) [1]

По какому принципу будешь ставить многоточие?
А что еcли этот путь выглядит:
С:\Program Files\AdobeUtilitiesScriptListener_2005_forAdmin\ScriptListener.8li


 
Loginov Dmitry ©   (2005-10-26 18:24) [2]

Пример:

Label1.Caption := MinimizeName("С:\Program Files\AdobeUtilitiesScriptListener_2005_forAdmin\ScriptListener.8li", Label1.Canvas, 250)


 
MBo ©   (2005-10-26 18:41) [3]

DrawText c флагом DT_PATH_ELLIPSIS


 
bobbyDigital   (2005-10-27 00:55) [4]

Loginov Dmitry спасибо


 
bobbyDigital   (2005-10-27 00:55) [5]

Loginov Dmitry спасибо


 
Kolan ©   (2005-10-27 01:07) [6]

Вот несколько примеров: (На форме несколько кнопок и несколько едитов. Может что лишнее скинул)

procedure TForm1.BitBtn1Click(Sender: TObject);
var
 S, S1: string;
 Buffer: array[0..255] of Char;
begin
 S := Application.ExeName;
 S1 := "";
 GetShortPathName(PChar(S), Buffer, SizeOf(Buffer) - 1);
 S1 := StrPas(Buffer);
 Edit1.Text := S1;
 Edit2.Text := S;
end;

procedure TForm1.BitBtn2Click(Sender: TObject);

var
P: PChar;
R: TRect;
S: string;
begin
S := Application.ExeName;
P := AllocMem(Length(S) + 1);
StrCopy(P, PChar(s));
//SetRect(R, 10, 10, 100, 25);
R := Edit3.ClientRect;
DrawText(Canvas.Handle, P, Length(s), R,
  DT_SINGLELINE or DT_CALCRECT or DT_LEFT or DT_MODIFYSTRING or DT_PATH_ELLIPSIS);
Edit3.Text := P;
FreeMem(P);
end;

procedure TForm1.BitBtn3Click(Sender: TObject);
begin
 Edit4.Text := ExtractRelativePath(Application.ExeName, ExtractFileDir(ExtractFileDir(Application.ExeName)))
end;

function TForm1.GetDotShortFilePath(FilePath: string): string;
var
 DelimetersCount, SecondDelimeter: Integer;
 I: Integer;
begin
 DelimetersCount := 0;
 SecondDelimeter := 0;
 for I := 1 to Length(FilePath) do
 begin
   if FilePath[I] = "\" then
     DelimetersCount := DelimetersCount + 1;

   if (DelimetersCount = 2) and (SecondDelimeter = 0) then
     SecondDelimeter := I;

   if DelimetersCount >= 3 then
     Break;
 end;

 if DelimetersCount >= 3 then
 begin
   Result := Copy(FilePath, 1, SecondDelimeter) + "..\" + ExtractFileName(FilePath);
 end
 else
   Result := FilePath;
end;

procedure TForm1.BitBtn4Click(Sender: TObject);
begin
 //Edit5.Text := GetDotShortFilePath(Application.ExeName);
 Edit5.Text := GetDotShortFilePath(Edit2.Text);
end;

function TForm1.AdjustStringToRect(S: string; Rect: TRect): string;
var                                
P: PChar;
begin
P := AllocMem(Length(S) + 1);
StrCopy(P, PChar(S));
Rect.BottomRight.X := Rect.BottomRight.X - 2;
DrawText(Canvas.Handle, P, Length(s), Rect,
  DT_SINGLELINE or DT_CALCRECT or DT_LEFT or DT_MODIFYSTRING or DT_PATH_ELLIPSIS);
Result := P;
FreeMem(P);
end;

procedure TForm1.BitBtn5Click(Sender: TObject);
begin
 Edit6.Text := AdjustStringToRect(Application.ExeName, Edit6.ClientRect);
end;

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
 Edit6.Width := TrackBar1.Position;
 Edit6.Text := AdjustStringToRect(Application.ExeName, Edit6.ClientRect);
end;



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.052 c
14-1130300029
SPeller
2005-10-26 08:13
2005.11.20
Подскажите браузер


14-1130003386
Loginov Dmitry
2005-10-22 21:49
2005.11.20
Каким образом должен развиваться MatriX?


3-1128778466
alpine
2005-10-08 17:34
2005.11.20
Через что лучше установить соединение с MySQL ?


2-1130842281
Gera
2005-11-01 13:51
2005.11.20
Как программно запустить из трея чужое приложение


1-1130481807
SergP.
2005-10-28 10:43
2005.11.20
Как установить приоритет процессу?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский