Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.13;
Скачать: CL | DM;

Вниз

Вертикальные надписи в 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.053 c
14-1108974584
Cosinus
2005-02-21 11:29
2005.03.13
TChart - Invalid Pointer Operation. Достало уже.


1-1109327534
AndreykA
2005-02-25 13:32
2005.03.13
маленькая проблемка с RichEdit


1-1109375074
oleg_SYS
2005-02-26 02:44
2005.03.13
Глобальная обработка ошибок приложения


14-1109077825
Soft
2005-02-22 16:10
2005.03.13
Покупка CD-RW


9-1103291787
elf_123
2004-12-17 16:56
2005.03.13
GLUTь