Вниз
Скачать: CL | DM;

Определение длины строки   Найти похожие ветки 

 
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)




Страницы: 1 вся ветка

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



Память: 0.45 MB
Время: 0.011 c
3-90775
lel
2002-02-27 16:37
2002.03.28
DataModule премущества и недостатки, если они есть конечно???


14-91043
Prog_SKV@Mail.ru
2002-02-13 08:35
2002.03.28
Help !!!


1-90987
JibSkeart
2002-03-15 12:27
2002.03.28
Ээ что то немогу придумать как в PopUpMenu добавить програмно итемы


3-90789
Rub
2002-03-04 11:02
2002.03.28
Как програмно послать почту по русски??? Помогите плиз!!!


14-91078
Королев
2002-02-12 22:07
2002.03.28
можно ли удалять свои темы и свои ответы здесь?




   Наверх