Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2008, 14:48   #1
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию Рисуем в ячейке DBGrig

Добрый день.
Что-то не могу сообразить... Допустим в таблице в числовом поле указаны проценты чего-то и 4 строки
40
30
20
10
//итого 100%
Как залить первую ячейку каким-нибудь цветом на 40%, вторую - на 30% и т.д.??? (Получится что-то типа диаграммы).
Понимаю, что нужно обрабатывать OnDrawDataCell. Ширина столбца в пикселях будет 100%.... А как закрасить?
_SERGEYX_ вне форума Ответить с цитированием
Старый 30.05.2008, 15:16   #2
D-mon
Форумчанин
 
Регистрация: 22.06.2007
Сообщений: 414
По умолчанию

Цитата:
Понимаю, что нужно обрабатывать OnDrawDataCell.
DBGrid1.Canvas.Rectangle(Rect)
Нет невыполнимых задач, всё дело времени...
D-mon вне форума Ответить с цитированием
Старый 30.05.2008, 16:39   #3
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Ну, да... Так я могу закрасить любую ячейку.
Но как закрасить часть ячейки? Ведь Rect определен как константа... и я не могу изменить ширину прямоугольника....
_SERGEYX_ вне форума Ответить с цитированием
Старый 30.05.2008, 16:43   #4
D-mon
Форумчанин
 
Регистрация: 22.06.2007
Сообщений: 414
По умолчанию

DBGrid1.Canvas.Rectangle(Rect.Left, Rect.Top, дальше сам поиграйся, непомню точно) - непомню как там...
Нет невыполнимых задач, всё дело времени...
D-mon вне форума Ответить с цитированием
Старый 30.05.2008, 16:53   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я уже давал на это и ответ и пример раскрасски ячеек DBGrid - рули поиском.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.06.2008, 10:28   #6
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Stilet, я поднял, поиском все... Но все не то. Я знаю как раскрасить столбцы, строки и ячейки Грида. Мне же нужно раскрасить часть ячейки, чтобы получилось как на картинке

Последний раз редактировалось _SERGEYX_; 02.06.2008 в 10:52.
_SERGEYX_ вне форума Ответить с цитированием
Старый 02.06.2008, 10:46   #7
D-mon
Форумчанин
 
Регистрация: 22.06.2007
Сообщений: 414
По умолчанию

Лови и не ссорся с модератором причём заслуженным:
Код:
procedure TForm2.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
 if(Column.FieldName='код_работы')then
  begin
   DBGrid1.Canvas.Brush.Color:=clRed;
   DBGrid1.Canvas.Pen.Color:=clRed;
   DBGrid1.Canvas.Rectangle(Rect.Left,Rect.Top,Rect.Right-Column.Field.AsInteger*10,Rect.Bottom)
  end;
end;
Нет невыполнимых задач, всё дело времени...
D-mon вне форума Ответить с цитированием
Старый 02.06.2008, 10:52   #8
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

D-mon, спасибо. Именно то, что нужно.
_SERGEYX_ вне форума Ответить с цитированием
Старый 02.06.2008, 13:06   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
D-mon
Да мы и не думали ссорится, просто плохо Сергей искал.
Позволь выдать вторую версию твоего кода, как мне кажется он короче:
Код:
//********** WITH **********
with DBGrid1.Canvas do  begin
 Brush.Color:=clRed;
 rect.Right:=Rect.Left+strtointdef(StringGrid1.Cells[acol,arow],0);
 FillRect(rect);
end;
//********** END WITH ****** {}
Только тут бы масштабировать нужно...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.06.2008, 13:19   #10
D-mon
Форумчанин
 
Регистрация: 22.06.2007
Сообщений: 414
По умолчанию

Цитата:
как мне кажется он короче
Прикольно получилось, но помоему мой нагляднее будет, и твой помоему, если я не ошибаюсь, рисует во всех ячейках... Я не в коем случае не хочу никого обидеть.
Нет невыполнимых задач, всё дело времени...
D-mon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление символа в ячейке Flangini Microsoft Office Excel 2 05.05.2008 14:02
картинка (jpeg) в ячейке Andrew999 Microsoft Office Excel 2 04.02.2008 04:49
два числа в одной ячейке zetrix Microsoft Office Excel 1 23.12.2007 23:24
Как обратиться к ячейке таблицы Аналитик Помощь студентам 16 29.11.2007 20:11
Доступ к конкретной ячейке Gorin БД в Delphi 14 27.06.2007 16:24