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

Вниз

Узнать текущую ширину edit а   Найти похожие ветки 

 
Vincero   (2010-04-07 21:46) [0]

Привет всем!
Как узнать текущую ширину edit"а (точнее - его области для текста) в пикселях?
Мне нужно знать, какой максимальный Canvas.TextWidth он может показать на экране.


 
Jeer ©   (2010-04-07 21:56) [1]

*.ClientWidth не помогает ?


 
Vincero   (2010-04-07 21:57) [2]


> Jeer ©   (07.04.10 21:56) [1]

Сейчас попробую.


 
Игорь Шевченко ©   (2010-04-07 22:04) [3]


> Мне нужно знать, какой максимальный Canvas.TextWidth он
> может показать на экране


От шрифта зависит


 
Vincero   (2010-04-07 22:07) [4]

Вроде бы помогло. Спасибо!


 
Vincero   (2010-04-07 23:20) [5]

ClientWidth не дал нужного результата. Откопал в интернете следующую ф-ию, но, кажется, он все равно не учитывает длину моего Edit"а.

Может, найдете причину...

function MinimizePath(Edit: TEdit; const Path: String): String;
var
 TextRect: TRect;
 P: PChar;
 DC: HDC;
begin
 Result := "";
 DC := GetDC(Edit.Handle);
 if DC > 0 then
 try
   P := StrAlloc(Length(Path) + 5);
   try
     StrPCopy(P, Path);
     TextRect := Rect(0, 0, Edit.ClientWidth, 255);
     DrawTextEx(DC, P, -1, TextRect, DT_MODIFYSTRING + DT_CALCRECT + DT_PATH_ELLIPSIS, nil);
     Result := P;
   finally
     StrDispose(P);
   end;
 finally
   ReleaseDC(Edit.Handle, DC);
 end;
end;


 
Игорь Шевченко ©   (2010-04-07 23:24) [6]

а что в итоге надо ? (только не в терминах функций и эдитов, а в терминах задачи)


 
Vincero   (2010-04-07 23:30) [7]

В терминах задачи нужно, чтобы строка с путем к папке (например, C:\Documents\All Users\) умещалась в видимой области Edit’а. В противном же случае – чтобы она принимала укороченный вид (C:\...\All Users\) в зависимости от размеров Edit’а.


 
Amoeba_   (2010-04-07 23:53) [8]


> чтобы она принимала укороченный вид (C:\...\All Users\)
> в зависимости от размеров Edit’а

И что может получиться при редактировании такой строки?


 
Игорь Шевченко ©   (2010-04-08 00:20) [9]

Vincero   (07.04.10 23:30) [7]

А точно ли Edit нужен ? Может, достаточно StaticText ?


 
Andy BitOff ©   (2010-04-08 09:52) [10]


> Vincero   (07.04.10 23:30) [7]

MinimizeName ищи. Только Edit действительно для этих целей не подходит.


> Amoeba_   (07.04.10 23:53) [8]
> И что может получиться при редактировании такой строки?

При onEnter
Edit.Text := переменная_хранящая_путь.

При onExit
переменная_хранящая_путь := Edit.Text;
Edit.Text := MinimizeName(...);

Но, имхо, "Edit действительно для этих целей не подходит"



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

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

Наверх





Память: 0.46 MB
Время: 0.062 c
15-1267433491
Prizrak
2010-03-01 11:51
2010.08.27
Delphi утилита для извлечения функций из любой dll


2-1267356695
Officeman
2010-02-28 14:31
2010.08.27
Помогите ! Проблема с выводом текст на принтер


2-1272357482
viktooor
2010-04-27 12:38
2010.08.27
Отчет


15-1267133405
Юрий
2010-02-26 00:30
2010.08.27
С днем рождения ! 26 февраля 2010 пятница


15-1272745804
Юрий
2010-05-02 00:30
2010.08.27
С днем рождения ! 2 мая 2010 воскресенье





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