Текущий архив: 2006.04.02;
Скачать: CL | DM;
ВнизОпределение длинны текста, в пикселях. Найти похожие ветки
← →
San_pancho (2006-03-14 21:05) [0]Уважаемые мастера подскажите пожалуйста.
Нужна процедура которая по заданному стилю строки, ее размеру, и ширене области (в пикселях), в которую будет вписана это строка, определила количество занимаемых ей строк.
Или какую-нибудь функцию которую можно полезно использовать для написания этой функции.
← →
san_pancho (2006-03-14 21:22) [1]Компонент Мемо это же делает как-то.
← →
Джо © (2006-03-14 21:23) [2]У Canvas есть методы TextWidth, TextHeight.
← →
Desdechado © (2006-03-14 21:24) [3]DrawText ( CALC_RECT )
← →
san_pancho (2006-03-14 21:35) [4]А как-нибудь количество строк подсчитать можно?
← →
Desdechado © (2006-03-14 21:38) [5]можно
высоту зоны поделить на полную высоту шрифта
← →
san_pancho (2006-03-14 21:41) [6]А как задать длину зоны?
Можете маленький пример набросать?
← →
ЮЮ © (2006-03-16 03:34) [7]>А как задать длину зоны?
в передаваемом параметре Rectprocedure DrawTextOnCanvas(
Canvas: TCanvas; const Text: string; var ARect: TRect; Alignment: TAlignment;
Calculate: boolean = false; WordWrap: boolean = true
);
const
AlignFlags: array [TAlignment] of Integer =
(DT_LEFT or DT_EXPANDTABS or DT_NOPREFIX,
DT_RIGHT or DT_EXPANDTABS or DT_NOPREFIX,
DT_CENTER or DT_EXPANDTABS or DT_NOPREFIX);
var
flags: integer;
begin
flags := AlignFlags[Alignment];
if WordWrap then flags := flags + DT_WORDBREAK;
if Calculate then flags := flags + DT_CALCRECT;
DrawText(
Canvas.Handle,
PChar(Text),
length(Text),
ARect,
flags
);
end;
procedure TfrmTest.CalculateGridRowHeights;
var
i: integer;
r: TRect;
begin
Grid.Canvas.Font.Assign(Grid.Font);
Grid.Canvas.Font.Style := [fsBold];
for i := 0 to Grid.RowCount - 1 do begin
r := Rect(0, 0, Grid.ColWidths[Grid.ColCount - 1] - 4, Grid.DefaultRowHeight);
DrawTextOnCanvas(
Grid.Canvas, Grid.Cells[Grid.ColCount - 1, i], r, taLeftJustify, true
);
Grid.RowHeights[i] := r.Bottom + 4;
end;
end;
Страницы: 1 вся ветка
Текущий архив: 2006.04.02;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.042 c