Форум: "Начинающим";
Текущий архив: 2008.06.08;
Скачать: [xml.tar.bz2];
ВнизКак в TEdit узнать ширину текста в пикселах? Найти похожие ветки
← →
Mishenka (2008-05-13 16:34) [0]Как в TEdit узнать ширину текста в пикселах?
← →
Ega23 © (2008-05-13 16:37) [1]
function GetTextWidthInPixels(AText: string; AControl: TControl): integer;
// Copyright by Игорь Шевченко ©
var
propInfo: PPropInfo;
thisFont: TFont;
begin
Result := 0;
propInfo := GetPropInfo(AControl.ClassInfo, "Font");
if propInfo <> nil then begin
thisFont := TFont(GetObjectProp(AControl, "Font"));
if Assigned(thisFont) then
with TControlCanvas.Create do
try
Control := AControl;
Font.Assign(thisFont);
Result := TextWidth(AText);
finally
Free;
end;
end;
end;
← →
Игорь Шевченко © (2008-05-13 17:35) [2]
> // Copyright by Игорь Шевченко
Не, я ее содрал у кого-то
← →
Ega23 © (2008-05-13 17:40) [3]
> Не, я ее содрал у кого-то
Меня не колышит, я её у тебя увидел... :))))
← →
antonn © (2008-05-13 17:49) [4]извините, а могу я ее спереть в свой фак? :)
← →
Renegat (2008-05-13 17:49) [5]ИМХО, вот это чуть побыстрее будет:
function GetTextWidthInPixels(Text:string; W:HWND): integer;
var
DC: HDC;
sz: SIZE;
begin
DC:=GetDC(W);
GetTextExtentPoint32(DC, PChar(Text), length(Text), sz);
ReleaseDC(W, DC);
DeleteDC(DC);
result:=sz.cx;
end;
Вызывать так:
GetTextWidthInPixels(Edit1.Text, Edit1.Handle);
← →
han_malign © (2008-05-13 17:53) [6]
> DeleteDC(DC);
- совершенно лишний.
← →
Игорь Шевченко © (2008-05-13 17:55) [7]
> - совершенно лишний.
Не то, что лишний, а вредный
← →
Renegat (2008-05-13 17:57) [8]Хм... а ведь правда. An application must not delete a device context whose handle was obtained by calling GetDC. Выкинуть!
← →
antonn © (2008-05-13 18:06) [9]
> Игорь Шевченко © (13.05.08 17:35) [2]
> Renegat (13.05.08 17:49) [5]
ну а все таки, могу я взять код?
← →
Renegat (2008-05-13 18:19) [10]Бери, естессно. Не жалко ;)
← →
Palladin © (2008-05-13 18:33) [11]Но с ссылкой на Игоря в исходниках! )
← →
antonn © (2008-05-13 18:48) [12]ну ессно :)
http://desksoft.ru/index.php?drkb=80&id=4379&str_path=0|55|80&w
← →
Anatoly Podgoretsky © (2008-05-13 19:03) [13]> Ega23 (13.05.2008 17:40:03) [3]
Все украдено до нас
(Ы)
← →
Mishenka (2008-05-14 09:39) [14]У меня компилятор ругнулся к PPropInfo. Залез в хелп, посмотрел и прописал uses TypeInfo. Тогда пишет File not find TypeInfo.dcu. Сам файл у себя не нашёл. Где его взять или в 6-ых дельфях его вообще нету?
← →
Palladin © (2008-05-14 09:42) [15]
> Где его взять или в 6-ых дельфях его вообще нету?
нету, накосячили они в хелпе, не TypeInfo, а TypInfo
← →
Palladin © (2008-05-14 09:43) [16]хотя это еще на самом деле не известно кто именно накосячил :) создатели справки или создатели модуля при его обнаименовании... история скрывает
← →
Anatoly Podgoretsky © (2008-05-14 09:58) [17]Ты думаешь, что сообщение "File not find TypeInfo.dcu" выдает справка?
← →
Простой (2008-05-16 21:48) [18]Два примера и выдают разное значение.
ПОЧЕМУ?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.06.08;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.043 c