Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Узнать текущую ширину 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.101 c
2-1269669606
NBAH1990
2010-03-27 09:00
2010.08.27
Помогите разобраться с компонентом TsListView


6-1216631498
mv
2008-07-21 13:11
2010.08.27
XML


2-1272565792
Bee
2010-04-29 22:29
2010.08.27
single and string


15-1273773663
stas
2010-05-13 22:01
2010.08.27
Цифровая подпись Microsof


11-1221339711
Dy1
2008-09-14 01:01
2010.08.27
пожалуйста скажите что не так