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

Вниз

Опять Word   Найти похожие ветки 

 
Spawn ©   (2003-08-16 10:44) [0]

Есть ли способ узнать Height одной строки?

Я пробовал узнавать Height текста, но получал не совсем точное значение:

try
FontSize:=Doc.Paragraphs.Item(Doc.Paragraphs.Count).Range.Font.Size;
LabelTest:=TLabel.Create(Self);
LabelTest.Parent:=Self;
LabelTest.Font.Size:=FontSize;
LabelTest.Font.Name:=Doc.Paragraphs.Item(Doc.Paragraphs.Count).Range.F ont.Name;
LabelTest.Caption:="Test";
tHeight:=LabelTest.Canvas.TextHeight(LabelTest.Caption);
ShowMessage(IntToStr(tHeight));
finally
FreeAndNil(LabelTest);
end;


Может есть како то Word-овский способ?


 
Spawn ©   (2003-08-16 10:46) [1]

Нужно это для того, чтобы после вставки картинки, сместить параграф на нужное количество значений(чтоб следующая запись не "налегала" на картинку).


 
Spawn ©   (2003-08-16 13:55) [2]

Неужели нет друих способов?


 
Viktorious   (2003-08-16 15:46) [3]

Высота строки зависит не только от Font.Name и Font.Size,
а также от стиля текста (курсив, подчеркивание и т.п. - вроде бы:), поэтому неудивительно, что приведенный фрагмент не точно работает.

По-моему, лучше попробовать так:
var oldFont:TFont;
begin
oldFont:=TFont.Create;
oldFont.Assign(Self.Font);
Self.Font.Assign(Doc.Paragraphs.Item
(Doc.Paragraphs.Count).Range.Font);
tHeight:=Self.Canvas.TextHeight(Our_Text);//Our_Text-текст, высоту которого надо узнать
ShowMessage(IntToStr(tHeight));
Self.Font.Assign(oldFont);
oldFont.Free;
end;



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

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

Наверх




Память: 0.47 MB
Время: 0.018 c
4-1725
AndrewPo
2003-07-03 08:19
2003.09.01
Как свернуть форму с BorderStyle=None?


14-1657
AZ
2003-08-12 03:43
2003.09.01
Net BreAkeR у - Публичную экзекуцию!


1-1382
Dimon
2003-08-16 19:07
2003.09.01
Как скопировать участок памяти в Delphi


1-1462
kuchumovkv
2003-08-18 16:12
2003.09.01
Dll и формы


3-1288
Zorik
2003-08-11 10:31
2003.09.01
как удалить prymary key в Interbase