![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
StringGrid ;(( [D5, Win95/98]
koks © (2002-04-01 10:45:00)Уважаемые мастера ! Подскажите пожалуйста, как "ручками" нарисовать 3D-эффект для Fixed Rows & Cols в сабже...
Я отключаю DefaultDrawing в свойствах TStringGrid и пишу обработчик OnDrawCell, в котором вызываю Canvas.FillRect для фона клеток и Canves.TextOut для вывода текста. Там достаточно сложные условия... Короче - стринггрид у меня разноцветный и в нем активно используется выравнивание по правому краю и по центру... все работает, только некрасиво выглядят Fixed rows и Cols....
MBo (2002-04-01 14:17:00) [1]ну рисуй там Bevel, по нему пиши
reonid (2002-04-01 14:10:00) [2]см DrawEdge
koks (2002-04-01 14:08:00) [3]Нет, потому что я на Fixed Rows и Cols тоже вывожу текст в OnDrawCell, выравненный по центру.
Я уже так пробовал: (Я ставил if (gsFixed in State) then...)
Если сделать так и установить DefaltDrawing то мой текст в клетке пишется 2 раза - один раз выравненный по левому краю (Default), а второй раз уже по центру - моя прорисовка... и 3D при этом рисуется путем. А если убрать DefaultDrawing то текст пишется путем... и фон... но нет 3D
MBo (2002-04-01 11:07:00) [4]procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if (Acol<>0) and (ARow<>0) then begin
...
не устроит?