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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 13.11.2010, 22:26   #1
M@riy@
Пользователь
 
Регистрация: 23.09.2010
Сообщений: 11
По умолчанию

Здравстуйте! В моем проекте есть новая форма добавления строк в БД, после того как новая строка добавлена, пользователю необходимо окрасить последнюю ячейку(в которой содержится дата (столбец № 5)) в определенный цвет... На форма есть две кнопки, одна из которых должна окрашивать созданную ячейку в красный цвет, другая в синий, в зависимости от того, как это необходимо пользователю. Как это можно осуществить??? УВАЖАЕМЫЙ МИХАЛЫЧ!!! просмотрела всё, что выдал поиск, параллельно с ним просматривала разделы "помощь студентам", "БД в Делфи", "Компоненты Делфи", "общие вопросы делфи", НО НИЧЕГО ИЗ ТОГО, ЧТО МНЕ НУЖНО НЕ НАШЛА! да, есть, дастаточно, НО ПО ОПРЕДЕЛЕННЫМ ПАРАМЕТРАМ! Ну а как сделать по нажатию на кнопку??? и именно новой ячейки... Очень срочно нужно...

В таблицу добавляется клиент(ФИО),данные и дата посещения(последняя), если он ничего предприятию не должен, то администратор, после добавления строки окрашивает ячейку с датой в синий цвет(нажав на кнопку), если должен, то в красный, тоже нажатием на кнопку... вот такие вот требования заказчика... А справиться с этим сама увы не могу...

Последний раз редактировалось mihali4; 14.11.2010 в 01:55.
M@riy@ вне форума
Старый 14.11.2010, 00:33   #2
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Давай для пробы просто покрасим последнюю ячейку...
Глобальная
Код:
var isColor: Boolean = False;
Код раскраски
Код:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if (isColor = True) and //Красить или нет
    (DataCol = DBGrid1.Columns.Count - 1) and //Последний столбец
    (MyTable1.RecordCount = MyTable1.RecNo) then //Последняя запись
  begin
    DBGrid1.Canvas.Brush.Color := clRed;
    DBGrid1.Canvas.Pen.Color := clRed;
    DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
  end;
end;
Нажмем на кнопку
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  isColor := True;
  DBGrid1.Refresh;
end;
Но такой способ тебе ничего не даст. Нужно добавить еще одно поле в таблицу. И пусть администратор кликом по кнопке, если заказчик должен, запишет в это поле 1, если не должен - 0. А уже дальше раскрасить нужную ячейку в зависимости от значения этого поля.

Последний раз редактировалось _SERGEYX_; 14.11.2010 в 00:36.
_SERGEYX_ вне форума
Старый 14.11.2010, 19:27   #3
M@riy@
Пользователь
 
Регистрация: 23.09.2010
Сообщений: 11
По умолчанию

Цитата:
Сообщение от _SERGEYX_ Посмотреть сообщение
Нужно добавить еще одно поле в таблицу. И пусть администратор кликом по кнопке, если заказчик должен, запишет в это поле 1, если не должен - 0. А уже дальше раскрасить нужную ячейку в зависимости от значения этого поля.
Спасибо большое за идею! Добавила новый столбец в таблице, в котором можно выбирать два варианта "Да" и "нет"... даже получилось покрасить этот столбец...тепреь по добавлению новой строки правильно окрашивается только новый столбец, а как можно осуществить заливку нужной (предыдущей (по счету на строке - 5)) ячейки в зависимости от этого значения?
Сделала таким образом:
Цитата:
procedure TForm1.DBGrid1DrawColumnCell(Sender : TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if DataCol > 4 then
begin
with DBGrid1.Canvas do
begin

if Pos('Да',Column.Field.Text) > 0 then Brush.Color := clGreen;
if Pos('Нет',Column.Field.Text) > 0 then Brush.Color := clRed;
end;
DBGrid1.Defaultdrawcolumncell(Rect, Datacol,Column,State)
end;
end;
Огромное спасибо за помощь! )
M@riy@ вне форума
Старый 14.11.2010, 20:35   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

И даже здесь: http://yandex.ua/yandsearch?date=&te...=4560&lr=20554

Ничего подходящего??

Какие критерии заливки то?

,,,,,,,,333
I'm learning to live...
Stilet вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DBGrid конкретная ячейка Niklan БД в Delphi 6 24.01.2013 07:31
Ячейка в DBGrid в несколько цветов _SERGEYX_ Общие вопросы Delphi 1 12.09.2010 09:44
Цвет текущей строки в DBGrid reiftd C++ Builder 1 29.10.2009 11:10
Ячейка с текстом, ячейка без текста. segail Microsoft Office Excel 5 16.09.2009 21:55
Цвет строк в DBGrid по событию funball БД в Delphi 11 26.08.2009 12:21