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

Вниз

Длина TRect для отрисовки Текста   Найти похожие ветки 

 
McSimm2   (2003-09-16 11:14) [0]

не могу вычислить нужный ректангл для отрисовки текста. Создаю свой шрифт :


LogFont: TLogFont;
FontSizeH, FontSizeW: Integer;
N: PChar;
S: string[4];
_s: String;
begin
FontSizeH := 10;
FontSizeW := 6;

LogFont.lfHeight := round(scale * FontSizeH);
LogFont.lfWidth := round(scale * FontSizeW);
LogFont.lfOrientation := 0;
LogFont.lfEscapement := 0;
LogFont.lfWeight := FW_NORMAL;
LogFont.lfItalic := 0;
LogFont.lfUnderline := 0;
LogFont.lfStrikeOut := 0;
LogFont.lfOutPrecision :=0;
LogFont.lfClipPrecision := 0;
LogFont.lfQuality := 0;
LogFont.lfPitchAndFamily := FF_SCRIPT;
LogFont.lfFaceName := "Verdana";
Font := CreateFontIndirect(LogFont);


А потом пытаюсь вычислить длину текста:

with TempRec do
begin
Left := FLeft;
Top := FTop;
Right := FLeft + FontSizeW * (length(FText)+1);
Bottom := FTop + FontSizeH;
end;


И рисую текст

SetTextColor(FDC, FColor);
Str(strtoint(FText), S);
_s := s;
DrawText(FDC, pchar(_s+"°"), -1, TempRec, DT_LEFT or DT_TOP);
DeleteObject(SelectObject(FDC, SaveFont));


Всё круто рисует, за исключением того что с правой стороны половину символа обрезает.
Как правильно указать длину ректангла ? Когда создаёшь шрифт - есть ли там такой параметр, как межсимвольные "пробелы" - или все символы жёстко друг к друге липнут????
Может можно указать

Right := FLeft + FontSize * (length(FText)+1) +length(FText)*0.5;

где 0.5 длина этих "пробелов" мифических ???


 
ZEE ©   (2003-09-16 11:41) [1]

GetTextExtentPoint32()
а лучше посмотри исходники - файл Graphics.pas - там ищи
function TCanvas.TextExtent(const Text: string): TSize;



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

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

Наверх




Память: 0.47 MB
Время: 0.022 c
3-96061
AlexPul
2003-09-08 12:05
2003.09.29
User Defined Function в Interbase


3-96058
Solaris
2003-08-24 21:54
2003.09.29
проблема с русскими буквами в Database Desktop


3-96051
abx
2003-09-10 16:29
2003.09.29
какой тип курсора выбрать клиентский или серверный??


1-96219
Dubrovskyi
2003-09-17 00:52
2003.09.29
Здоровая таблица


3-96128
denis24
2003-09-03 17:00
2003.09.29
работа с excel через ado