Многострочный TStringGrid
Изобрели суперкомпьютер. Позвали англичанина, немца и русского колхозника и сказали: - Назовите два числа и компьютер произведет с ними любую операцию. Если он не сможет посчитать, вы получите кучу денег! Англичанин называет 10^6581 - компьютер все посчитал и его выгнали. Немец называет 236^65468749846 - компьютер все посчитал и его тоже выгнали. Русский говорит: - До х#я... Компьютер зависает. Изобретатели посовещались и решили: - Поехали к нему в колхоз, наверное, у них там все такие умные! Приезжают в колхоз, смотрят - мужик поле косит. Подходят к нему и спрашивают: - Мужик, скажи, а "до х#я" это много? - Да как вам сказать... Видите поле, которое я кошу? Это до х#я. - Не поняли... А вот поле через дорогу - это тоже до х#я? - А это соседское, это до п#зды!!! |
...да, но вы должны перекрыть событие OnDraw. Ниже приведен пример, делающий заголовок многострочным, центрированным и с жирным шрифтом:
// if Dispatch.GetIDsOfNames(GUID_NULL, @NameRefs, NameCount, procedure TForm1.grid1DrawCell(Sender: TObject; Col, Row: Longint; Rect: TRect; State: TGridDrawState); var l_oldalign: word; l_YPos, l_XPos, i: integer; s, s1: string; l_col, l_row: longint; begin l_col := col; l_row := row; with sender as tstringgrid do begin if (l_row = 0) then canvas.font.style := canvas.font.style + [fsbold]; if l_row = 0 then begin l_oldalign := settextalign(canvas.handle, ta_center); l_XPos := rect.left + (rect.right - rect.left) div 2; s := cells[l_col, l_row]; while s <> '' do begin if pos(#13, s) <> 0 then begin if pos(#13, s) = 1 then s1 := '' else begin s1 := trim(copy(s, 1, pred(pos(#13, s)))); delete(s, 1, pred(pos(#13, s))); end; delete(s, 1, 2); end else begin s1 := trim(s); s := ''; end; l_YPos := rect.top + 2; canvas.textrect(rect, l_Xpos, l_YPos, s1); inc(rect.top, rowheights[l_row] div 3); end; settextalign(canvas.handle, l_oldalign); end else begin canvas.textrect(rect, rect.left + 2, rect.top + 2, cells[l_col, l_row]); end; canvas.font.style := canvas.font.style - [fsbold]; end; end; |
Далее: Многострочный TStringGrid 2 »»