![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Форматирование ячеек в TStringGrid. [D1, D2, D3, D4, D5, D6, Win95/98, WinME, NT4, Win2k, WinXP]
Muzzy © (2002-04-02 12:33:00)Уважаемые мастера, помогите реализовать сабж.
В ячейки StringGrid заносятся названия пунктов, но сами названия очень длинные и чтение затруднено. Задача: в фиксированную длину столбца поместить строку, и если эта строка выходит за пределы ячейки автоматически увеличить ширину ячейки и разместить остальное строкой ниже в этой же ячейке (нечто похожее на «перенос по словам” в Excel) и позиционировать все это в верхний левый угол. Есть ли подобное свойство у StringGrid или надо делать ручками. И если ручками, то как?
MBo (2002-04-02 13:04:00) [1]что-нибудь в этом роде
procedure TForm1.sg1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var r:trect;
begin
if sg1.canvas.textwidth(sg1.cells[Acol,Arow])>sg1.ColWidths[Acol] then begin
r:=rect;
DrawText(sg1.canvas.handle,pchar(sg1.cells[Acol,Arow]),length(sg1.cells[Acol,Arow]),r, DT_WordBreak+DT_CalcRect);
r.right:=rect.right;
sg1.canvas.fillrect(r);
sg1.Rowheights[aRow]:=r.bottom-r.top+3;
DrawText(sg1.canvas.handle,pchar(sg1.cells[Acol,Arow]),length(sg1.cells[Acol,Arow]), r, DT_WordBreak);
end;
end;