Форум: "Начинающим";
Текущий архив: 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