Форум — Ответы     (  К темам )
 ?  Тесля: Александр, снова про перенос текста в ячейке TStringGrid (12-04-2003 18:54:41)
Извини, но не мог бы ты привести пример исходника?
(Ну торможу я)
"просто прямо в OnDrawCell рисуй себе текст через DrawText с флагом DT_WORDBREAK. "
StringGrid1->Canvas->DrawText...???
Так в C Builder 5 не получается
спасибо
 Alexander (14-04-2003 16:19:08)
DrawText — функция Windows API.
Пример:
DrawText(hDC, str, strlen(str), &tmp, DT_LEFT|DT_SINGLELINE|DT_VCENTER);
Дальше по хелпу...
Я же говорю, простыми методами не получится... здесь hDC, очевидно, равен StringGrid1->Canvas->Handle.
 Павел (14-04-2003 20:27:18)
Да, что-то типа:

void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{
char* str="Hello, my dear friend";

HDC hdc;
hdc = GetDC(StringGrid1->Handle);
DrawText(hdc, str, strlen(str), &Rect, DT_WORDBREAK);
ReleaseDC(StringGrid1->Handle,hdc);
}
//-----------------------------------------------------------

Только еще надо поколдовать с опциями StringGrid1 и с флагами
в DrawText, чтобы все корректно выводилось.
А уж если хочется, чтобы ячейка StringGrid еще расширялась (Height)
чтобы вместить весь текст, то колдовать придется долго.