Форум: "Основная";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];
ВнизВертикальные надписи в StringGrid Найти похожие ветки
← →
KIR (2005-03-01 12:07) [0]Народ, подскажите, как вывести содержимое строки StringGrid"а вертикально?
← →
clickmaker © (2005-03-01 12:09) [1]OnDrawCell
ставишь нужную ориентацию и рисуешь текст сам
← →
KIR (2005-03-01 12:16) [2]Можно чуть подробнее про ориентацию. Где ее выставлять?
← →
clickmaker © (2005-03-01 12:20) [3]CreateFontIndirect
logfont.lfOrientation
← →
KIR (2005-03-01 12:29) [4]спас!
← →
KIR (2005-03-01 15:11) [5]procedure TRepForm.StringGrid2DrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
var
Canv: TCanvas;
S: String;
lf: LOGFONT;
al: UINT;
begin
Canv := TStringGrid(Sender).Canvas;
S := TStringGrid(Sender).Cells[ACol,ARow];
Canv.FillRect(Rect);
al := DT_LEFT or DT_WORDBREAK or DT_END_ELLIPSIS or DT_NOPREFIX;
If ARow = 0 then
begin
Canv.Brush.Style := bsClear;
FillChar(Addr(lf), SizeOf(lf), Byte(0)); //constant object cannot be passed as var parametr
lf.lfHeight := 20;
lf.lfEscapement := 10 * 45;
lf.lfOrientation := 10 * 45;
lf.lfCharSet := DEFAULT_CHARSET;
Canv.Font.Handle := CreateFontIndirect(Addr(lf));
end;
DrawTextEx(Canv.Handle, PChar(S),-1,Rect,al,nil);
end;
← →
KIR (2005-03-01 15:13) [6]Что-то не выходит, хотя пример взят из справки D7...
← →
clickmaker © (2005-03-01 15:56) [7]
> FillChar(Addr(lf), SizeOf(lf), Byte(0)); //constant object
> cannot be passed as var parametr
не надо тут Addr
если уж по адресу, то так
ZeroMemory(@lf, sizeof(LOGFONT));
← →
KIR (2005-03-01 16:02) [8]Так как же правильно написать в итоге? Если не сложно, можно прям в моем примере поправить...
← →
begin...end © (2005-03-01 16:03) [9]> KIR (01.03.05 16:02) [8]
FillChar(lf, SizeOf(lf), 0) или ZeroMemory(@lf, sizeof(lf))
← →
KIR (2005-03-01 17:13) [10]Делаю так:
procedure TRepForm.StringGrid2DrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
var
Canv: TCanvas;
S: String;
lf: LOGFONT;
al: UINT;
begin
Canv := TStringGrid(Sender).Canvas;
S := TStringGrid(Sender).Cells[ACol,ARow];
Canv.FillRect(Rect);
al := DT_CENTER;
If ARow = 0 then
begin
Canv.Brush.Style := bsClear;
FillChar(lf, SizeOf(lf), Byte(0));
lf.lfHeight := 11;
lf.lfEscapement := 10 * 90;
lf.lfOrientation := 10 * 90;
lf.lfCharSet := DEFAULT_CHARSET;
Canv.Font.Handle := CreateFontIndirect(lf);
end;
DrawTextEx(Canv.Handle, PChar(S),-1,Rect,al,nil);
end;
А результата нет... в чем беда?
← →
KIR (2005-03-02 10:16) [11]Точнее так:
...
lf.lfEscapement := 10 * 45;
lf.lfOrientation := 10 * 45;...
← →
clickmaker © (2005-03-02 11:20) [12]
> KIR (02.03.05 10:16) [11]
а где имя шрифта? lfFaceName
← →
KIR (2005-03-02 11:34) [13]Делаю так:
Canv.Brush.Style := bsClear;
FillChar(lf, SizeOf(lf), Byte(0));
lf.lfHeight := -11;
lf.lfEscapement := 10 * 45;
lf.lfOrientation := 10 * 45;
lf.lfCharSet := DEFAULT_CHARSET;
lf.lfFaceName := "MS Sans Serif";
Canv.Font.Handle := CreateFontIndirect(lf);
и ничего не меняется...
Делаю так:
...
lf.lfHeight := 15;
...
И вижу маленький кусок текста в верхнем левом углу ячейки под углом 45 градсов...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.032 c