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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2013, 19:38   #11
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от Konstantin_ua Посмотреть сообщение
С полями все нормально, может я не там пишу сам запрос? если в теле события писать то начнет лагать страшно, пишу в форм криейте.
вот
https://www.dropbox.com/s/orwtjabn572kmbl/Ado.rar пасс 12345 лог админ
Покрасить ячейка . Условия на полей 'nam' покрасим ( Кофе и 'Макарон)

Код:
procedure TfrmMain.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
   if Column.FieldName = 'nam' then
       if (Column.Field.AsString ='Кофе') then
         begin
           DBGrid1.Canvas.Brush.Color := clLime;
           DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
        end
        else
        if (Column.Field.AsString ='Макарон') then
           begin
             DBGrid1.Canvas.Brush.Color := clYellow;
             DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
          end
end;

end.
Вложения
Тип файла: rar Color_DB2.rar (390.8 Кб, 28 просмотров)
xxbesoxx на форуме Ответить с цитированием
Старый 16.12.2013, 12:36   #12
Konstantin_ua
Не судите строго
Форумчанин
 
Аватар для Konstantin_ua
 
Регистрация: 31.03.2011
Сообщений: 202
Хорошо

все работает, просто в начале когда создается датасет то у него нету еще полей типа Status? sql запрос еще не был выполнен и поля пустые, проблему решил кинул чек бокс и меняю его после того как заполняю таблицу, в самом событие
Код:
DBGrid1DrawColumnCell
поставил проверку и там уже рисую нужным цветом. Если кто то знает как проще сделать жду ваших предложений.
Konstantin_ua вне форума Ответить с цитированием
Старый 25.12.2013, 14:13   #13
SunnyCrash
Пользователь
 
Регистрация: 13.02.2011
Сообщений: 45
Смущение Есть пример ехе что еще?

Посмотри мож поможет
SunnyCrash вне форума Ответить с цитированием
Старый 25.12.2013, 14:16   #14
SunnyCrash
Пользователь
 
Регистрация: 13.02.2011
Сообщений: 45
Смущение ППЦ

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBGridEhGrouping, DB, ADODB, GridsEh, DBGridEh, StdCtrls,
IWControl, IWCompListbox, IWDBStdCtrls, CheckLst, DBCheckListBox;

type
TForm1 = class(TForm)
DBGridEh1: TDBGridEh;
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
Button1: TButton;
Button2: TButton;
Button3: TButton;
CheckBox1: TCheckBox;
DBCheckListBox1: TDBCheckListBox;
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormShow(Sender: TObject);
begin
ADOQuery1.SQL.Add('SELECT * FROM TableTest');
ADOQuery1.Active:=True;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.Insert;
ADOQuery1.Fields.FieldByName('check box').AsVariant:=1;
ADOQuery1.Post;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM TableTest WHERE checkbox=:check');
ADOQuery1.Parameters.ParamByName('c heck').Value:=CheckBox1.Checked;
ADOQuery1.Active:=True;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
ADOQuery1.First;
ShowMessage(ADOQuery1.Fields.Fields[1].AsVariant);
end;

procedure TForm1.DBGridEh1DrawColumnCell(Send er: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);

var
holdColor: TColor;
begin
holdColor := DBGridEh1.Canvas.Brush.Color; {сохраняем оригинальный цвет}
{"раскрашиваем" ячейки только для поля EmpNo}
if Column.FieldName = 'id' then
if (Column.Field.AsInteger mod 2 <> 0) then
begin
DBGridEh1.Canvas.Brush.Color := clRed;
DBGridEh1.DefaultDrawColumnCell(Rec t, DataCol, Column, State);
DBGridEh1.Canvas.Brush.Color := holdColor;
end;
end;
//Для разных цветов ячеек
end.
SunnyCrash вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение цвета ячейки по гипессылке Ayse Microsoft Office Excel 15 17.07.2013 10:46
Изменение цвета ячейки DBGridEh Dandy777 Общие вопросы Delphi 2 07.11.2012 14:46
Изменение цвета фона строки в DBGrid Ericnex БД в Delphi 6 30.08.2012 13:37
DBGrid изменение цвета ячейки S.T.U.D.E.N.T C++ Builder 6 24.04.2012 13:21
Изменение цвета ячейки содержащей формулу LexxSakhalin Microsoft Office Excel 7 07.09.2010 14:36