Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.046 c
2-1270715878
Дмитрий Жуков
2010-04-08 12:37
2010.08.27
"Строки"


2-1265790561
fford
2010-02-10 11:29
2010.08.27
spliter переносится за панель


6-1221550924
Colt
2008-09-16 11:42
2010.08.27
SimpleMapi из Win Service


15-1267515795
@!!ex
2010-03-02 10:43
2010.08.27
Опять AOL бунтует?


6-1197627723
Palladin
2007-12-14 13:22
2010.08.27
Indy и SSL




   Наверх