Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.01.31;
Скачать: CL | DM;

Вниз

Получение ширины текста в Memo   Найти похожие ветки 

 
Jano ©   (2002-01-10 02:12) [0]

Как получить размер (в пикселях) текста введенного
в компонент Memo с учетом межстрочных интервалов?


 
Jano ©   (2002-01-10 02:16) [1]

Получение не ширины текста, а его высоты.
Сори...


 
MBo ©   (2002-01-10 08:04) [2]

procedure TForm1.Button3Click(Sender: TObject);
var
TTM:TTextMetric;
begin
GetTextMetrics(GetDC(Memo1.Handle),TTM);
label1.caption:=inttostr(Memo1.Lines.Count*(TTM.tmHeight+TTM.tmExternalLeading));
end;



 
Jano ©   (2002-01-10 18:49) [3]

TTM.tmHeight (да и все осталное) остается постоянным
и не меняется при изменении шрифта в Memo. Как исправить?


 
MBo ©   (2002-01-11 15:28) [4]

и правда. пока не разбирался.
вот еще вариант
procedure TForm1.Button2Click(Sender: TObject);
var
r,l,h: LongInt;
begin
l:=length(memo1.Lines.text);
while (l>0) and (memo1.lines.text[l]=#13) or
(memo1.lines.text[l]=#10) do dec(l);
r := memo1.Perform(messages.EM_POSFROMCHAR,l,0);
if r >= 0 then begin
h:=hiWord(r)+abs(memo1.Font.Height);
label1.caption := IntToStr(h);
end;
end;


 
Jano ©   (2002-01-11 22:04) [5]

Немного подправив все заработало.

procedure TForm1.Button2Click(Sender: TObject);
var
R, L, H: LongInt;
begin
L := Length(Memo1.Lines.Text);
while (L > 0) and (Memo1.Lines.Text[L] = #13)
or (Memo1.Lines.Text[L] = #10) do Dec(L);
R := Memo1.Perform(Messages.EM_POSFROMCHAR, L, 0);
if R >= 0 then begin
H := (HiWord(R) div (Memo1.Lines.Count - 1)) * Memo1.Lines.Count;
Label1.Caption := IntToStr(H);
end;
end;

А нет ли менее навороченного метода?


 
MBo ©   (2002-01-14 14:11) [6]

http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1010833133&n=3



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

Текущий архив: 2002.01.31;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
1-99965
Aleksandr
2002-01-14 11:12
2002.01.31
Проекция объектов


4-100100
DenKop
2001-11-30 23:33
2002.01.31
Вывод текста через контекст устройства...


7-100080
s1
2001-10-22 16:09
2002.01.31
Работа с сетевой картой


3-99853
kengura
2001-12-25 18:26
2002.01.31
SQL запросы insert и update и memo поля


14-100037
frostbite
2001-12-04 13:39
2002.01.31
JBuilder