Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-1108762029
Profi
2005-02-19 00:27
2005.03.13
Глобальный катаклизм


3-1108060910
Step[B.M.]
2005-02-10 21:41
2005.03.13
Как заставить FireBird сортировать кирилицу по "человечески"?


6-1105024458
Начинаюший2
2005-01-06 18:14
2005.03.13
Как програмно узнать что началось подключение к интернету?


1-1109510549
Bogdan
2005-02-27 16:22
2005.03.13
Как заменить символы на *


3-1108469267
first_may
2005-02-15 15:07
2005.03.13
Тип данных BLOB





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский