Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.28;
Скачать: [xml.tar.bz2];




Вниз

Определение длины строки 


Lamer2002   (2002-03-13 14:13) [0]

Как узнать длину строки, предположим в Memo, но только не в символах (так как символы разной длины бывают), а в каких-нибудь условных единицах( ну или в мм, мкм, км,....)? Очень нужно. Заранее благодарю.



Nebula   (2002-03-13 14:30) [1]

Canvas.TextExtent
Canvas.TextWidth
Canvas.TextHeight



MBo   (2002-03-13 14:33) [2]

в пикселах - textwidth.
для этого надо иметь Canvas - у Memo недоступно - можно создать временный битмап с таким же шрифтом (пример в FAQ для edit) или посложнее:
uses...typinfo;

function GetTextWidthInPixels(AText: string; AControl: TControl): integer;
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;


Ralph (TeamB)




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.28;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.015 c
14-91075          *                     2002-02-06 23:44  2002.03.28  
Не снимайте масок


14-91059          J_S (A)               2002-02-13 16:19  2002.03.28  
ICQ 2001a


4-91107           IronHawk              2002-01-28 16:00  2002.03.28  
Преобразование String to TCaption и Наоборот ..??


6-91016           Donal                 2001-10-19 12:11  2002.03.28  
UDP через SOCKS5


6-91019           Vasya                 2002-01-14 15:35  2002.03.28  
По поводу подключения к интернет сказано много но..