Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.09.2011, 15:13
Аватар для Amilman
Amilman Amilman вне форума
Новичок
 
Регистрация: 27.03.2011
Адрес: г.Кемерово
Сообщения: 98
Версия Delphi: XE
Репутация: 10
Смущение Как задать цвет строки в Grid?

Доброго времени суток)

У меня есть Таблица в Акцесе там есть три столбца Код, Название, Цвет
Заполняется через форму в Delphi потом мне надо чтобы из столбца Цвет брался цвет и строка с этим цветом в гриде окрашивалась в этот цвет. Как это реализовать?
Ответить с цитированием
  #2  
Старый 19.09.2011, 15:58
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Обрабатывайте событие OnDrawDataCell. Примеров в гугле и на форуме полно.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 19.09.2011, 17:44
Аватар для Amilman
Amilman Amilman вне форума
Новичок
 
Регистрация: 27.03.2011
Адрес: г.Кемерово
Сообщения: 98
Версия Delphi: XE
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
Обрабатывайте событие OnDrawDataCell. Примеров в гугле и на форуме полно.


Почитал. В основном описывается что смена цвета происходит при каком-то действии. А мне надо просто чтоб он из столбца цвет брал...
Ответить с цитированием
  #4  
Старый 19.09.2011, 18:35
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

в событии ondrawcell каждая клетка рисуется вручную при помощи canvas
Примеров в гугле и на форуме полно.
Ответить с цитированием
  #5  
Старый 19.09.2011, 19:07
Аватар для Amilman
Amilman Amilman вне форума
Новичок
 
Регистрация: 27.03.2011
Адрес: г.Кемерово
Сообщения: 98
Версия Delphi: XE
Репутация: 10
По умолчанию

А можно переделать какнить этот код?
Цитата:
begin
if (DataModule1.ADOTable2.FieldByName('Цвет').Value=1 2582847) then //что бы брал цвет из ADOTable2.FieldByName('Цвет')
begin
with DBGrid1.Canvas do begin
Brush.Color:=clGreen; //<--- И вставлял сюда
Font.Color:=clWhite;
FillRect(Rect);
TextOut(Rect.Left+2,Rect.Top+2,Column.Field.Text);
end;
end;
end;
Ответить с цитированием
  #6  
Старый 20.09.2011, 08:50
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

PHP код:
procedure TForm1.DBGrid1DrawDataCell(SenderTObject; const RectTRect;
  
FieldTFieldStateTGridDrawState);
begin
  
if not Field.Name 'Цвет' then Exit
  
Brush.Color := Field.AsInteger
  
...
end
наверно как-то так
Ответить с цитированием
  #7  
Старый 20.09.2011, 09:38
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию


Код:
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
  Field: TField; State: TGridDrawState);

  function ColorToBorderColor(AColor: TColor): TColor;
  type
    TColorQuad = record
      Red,
      Green,
      Blue,
      Alpha: Byte;
    end;
  begin
    if (TColorQuad(AColor).Red > $c0) or
       (TColorQuad(AColor).Green > $c0) or
       (TColorQuad(AColor).Blue > $c0) then
      Result := clBlack
    else
      Result := clWhite;
  end;

begin
  if not ClientDataSet1.FieldByName('Color').IsNull and not (gdSelected in State) then
  begin
    DBGrid1.Canvas.Brush.Color:=ClientDataSet1.FieldByName('Color').AsInteger;
    DBGrid1.Canvas.Font.Color:=ColorToBorderColor(DBGrid1.Canvas.Brush.Color);
  end;
  DBGrid1.DefaultDrawDataCell(Rect, Field, State);
end;

http://data.cod.ru/124672
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #8  
Старый 20.09.2011, 19:25
Аватар для Amilman
Amilman Amilman вне форума
Новичок
 
Регистрация: 27.03.2011
Адрес: г.Кемерово
Сообщения: 98
Версия Delphi: XE
Репутация: 10
По умолчанию

NumLock с этим кодом все записи становятся чёрными(
Ответить с цитированием
  #9  
Старый 20.09.2011, 19:36
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Цитата:
Сообщение от Amilman
NumLock с этим кодом все записи становятся чёрными(
о_О ты скриншота не видишь? где ж они черные то? в архиве готовый exe - его трудно запустить? единственное, что для этого примера midas.dll нужен.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #10  
Старый 20.09.2011, 19:43
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Amilman
NumLock с этим кодом все записи становятся чёрными(
Delphi XE feat Windows 7? В 7-й винде есть такая бида.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #11  
Старый 20.09.2011, 19:55
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
Delphi XE feat Windows 7? В 7-й винде есть такая бида.
ну вот не указал ТС свою версию Delphi... проверил exe в Windows XP и в Windows 7 все Okay.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #12  
Старый 20.09.2011, 20:04
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Цитата:
Сообщение от NumLock
ну вот не указал ТС свою версию Delphi... проверил exe в Windows XP и в Windows 7 все Okay.
С темкой "Aero Glass"?
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #13  
Старый 20.09.2011, 20:05
Аватар для Amilman
Amilman Amilman вне форума
Новичок
 
Регистрация: 27.03.2011
Адрес: г.Кемерово
Сообщения: 98
Версия Delphi: XE
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
ну вот не указал ТС свою версию Delphi... проверил exe в Windows XP и в Windows 7 все Okay.


Embarcadero RAD Studio XE
Windows 7 64 bit
Использую базы акцесса
Ответить с цитированием
  #14  
Старый 20.09.2011, 20:13
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
С темкой "Aero Glass"?
да, естественно:
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #15  
Старый 20.09.2011, 22:30
Аватар для Amilman
Amilman Amilman вне форума
Новичок
 
Регистрация: 27.03.2011
Адрес: г.Кемерово
Сообщения: 98
Версия Delphi: XE
Репутация: 10
По умолчанию

С самой программой всё нормально...
Но вот если всё сделать под мою программу тогда все записи становятся чёрными.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:23.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025