Главная страница
    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.065 c
15-1270632270
Валерий М.
2010-04-07 13:24
2010.08.27
MySQl Server 4


2-1267885769
Mer01
2010-03-06 17:29
2010.08.27
Как задать массив Record при инициализации?


3-1238143812
Fisht
2009-03-27 11:50
2010.08.27
фильтрация в TTable


15-1273588423
bss
2010-05-11 18:33
2010.08.27
D2006 - неверная подсказка для классовых методов


15-1272036312
@!!ex
2010-04-23 19:25
2010.08.27
Как получить повышенные привилегии в Vista?





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