Форум: "Основная";
Текущий архив: 2004.07.04;
Скачать: [xml.tar.bz2];
ВнизКак правильно прорисовать заголовок столбца StringGridа? Найти похожие ветки
← →
Таня (2004-06-17 13:55) [0]Есть StringGrid с заголовком на две строки. Нужно в некотором столбце прорисовать заголовок (текст, картинка) на обе строчки.
Я для текста делаю так:
procedure TFormOU.SGDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
var rec: TRect;
h: integer;
begin
if (state = [gdfixed]) and (arow < 2) then begin
if ACol=2 then if Arow=0 then begin
rec.Left := Rect.Left-1;
rec.Top := rect.Top-1;
rec.Right := rect.right+1;
rec.Bottom := rect.bottom+1;
SG.Canvas.Font.Color := clNavy;
SG.Canvas.Font.Size := 9;
SG.Canvas.Brush.Color := clBtnFace;
SG.Canvas.FillRect(rec);
h := SG.Canvas.TextWidth(SG.Cells[acol, arow]);
h := rect.Left + Round((rect.Right-rect.Left)/2 - h/2);
rec.Bottom:=2*(rec.Bottom-rec.Top)-1;
SG.Canvas.TextRect(rec,h + 2, rec.Top +13, SG.Cells[acol, arow]);
end else begin
{ничего не делаю для второй ячейки}
end
else begin
//прорисовка для других столбцов
...
end;
.....
Нижня ячека при этом всеравно налезает на текст, как правильно сделать?
← →
TUser © (2004-06-17 16:13) [1]
> rec.Bottom:=2*(rec.Bottom-rec.Top)-1;
А эта строчка что делает? Вроде, должен поменяться rec, т.е. текст будет выводиться за пределами ячейки. Я не очень врубился, но если не ошибаюсь, то ошибка исчезнет, если назначить соответствующий RowHeights[0].
← →
Таня (2004-06-17 16:54) [2]
> rec.Bottom:=2*(rec.Bottom-rec.Top)-1;
- Это я задаю высоты, чтобыrec
на две ячейки был.
Как я понимаюRowHeights[0]
действует на всю строку, а мне нужно только в определенном столбце.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.07.04;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.039 c