В FormShow вызываю
| Код | DrawVerticalTextInCell(sStringGrid, 0, 0, 'VerticalText');
|
Функция вывода вертикальной надписи в ячейке StringGrid-a:
| Код | procedure DrawVerticalTextInCell(StringGrid: TStringGrid; ACol, ARow: Integer; Text: String); var LogFont: TLogFont; Rect: TRect; begin Rect := sgHeader.CellRect(ACol, ARow);
FillChar(LogFont, SizeOf(LogFont), 0);
LogFont.lfHeight := 14; LogFont.lfWeight := 1; LogFont.lfEscapement := 900; LogFont.lfCharset := 1; LogFont.lfFaceName := 'Verdana'; LogFont.lfOutprecision := out_tt_precis; LogFont.lfQuality := draft_quality; LogFont.lfPitchandfamily := FF_Modern;
DrawVerticalText(StringGrid.Canvas, Rect.left, Rect.Bottom, Text, LogFont, clWhite); end;
|
Функция вывода вертикального текста:
| Код | procedure DrawVerticalText(Canvas: TCanvas; X, Y: Integer; Text: String; LogFont: TLogFont; Color: TColor); var Font : hFont; F : TFont; begin Font := CreateFontIndirect(LogFont); F := TFont.Create; F.Handle := Font; Canvas.Font := F; Canvas.Brush.Color := Color; Canvas.TextOut(X, Y, Text); F.Free; DeleteObject(Font); end;
|
Надпись в ячейке не выводится. Но если создать на форме, допустим Button, и вписать в ButtonClick вписать такой же вызов DrawVerticalTextInCell как и в FormShow - при нажатии кнопки все будет работать.
В чем ошибка? |