Главная страница
    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
2-1275314647
SIV5000
2010-05-31 18:04
2010.08.27
TTimer


15-1275645994
И. Павел
2010-06-04 14:06
2010.08.27
#0 и заголовки окон WinAPI


4-1234757954
spkors
2009-02-16 07:19
2010.08.27
сообщения Windows и Hooks


2-1272191721
koshkin
2010-04-25 14:35
2010.08.27
Как указать путь к модулю


4-1221129469
kalexi
2008-09-11 14:37
2010.08.27
Как загрузить BMP в массив?





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