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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2013, 20:41   #11
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
Помогите люди добрые, как мне сравнить "Статус"!
Может так?

Код:
if (Column.Field.DataSet.FieldByName('status').AsBoolean) then
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...

Последний раз редактировалось Sciv; 05.04.2013 в 20:44.
Sciv вне форума Ответить с цитированием
Старый 10.04.2013, 11:07   #12
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Что касается поста #5 и VCLUtils, то я просто забыл, что VCLUtils из библиотеки RxLib. Можно просто заменить строку
Код:
DrawCellBitmap(DBGridEh1,0,0,Bitmap,Rect);
на
Код:
DBGridEh1.Canvas.Draw((Rect.Right+Rect.Left-Bitmap.Width) div 2,(Rect.Bottom+Rect.Top-Bitmap.Height) div 2, Bitmap);
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 10.04.2013, 15:50   #13
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

Благодарю за помощь Аватар, а еще не могли бы вы подсказать как с этим условием еще можно разукрасить строки DBGridEh, если статус "True" то строка одним цветом, если "False" то другим, я буду вам очень благодарен, вот что есть на данном этапе:
Код:
procedure TForm1.DBGridEh1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumnEh;
  State: TGridDrawState);
var i: Integer;
    Bitmap: TBitmap;
begin
with ADOQuery2 do begin
Close;
SQL.Clear;
SQL.Add('Select * From tb_test');
Open;
  if (ADOQuery2.RecordCount>0) and (Column.Title.Caption='status') then begin
    if DataSource1.DataSet.FieldByName('status').AsBoolean then i:=1 else i:=0;
    Bitmap:=TBitmap.Create;
    Bitmap.Transparent:=True;
    ImageList1.GetBitmap(i,Bitmap);
    //DrawCellBitmap(DBGridEh1,0,0,Bitmap,Rect);
    DBGridEh1.Canvas.Draw((Rect.Right+Rect.Left-Bitmap.Width) div 2,(Rect.Bottom+Rect.Top-Bitmap.Height) div 2, Bitmap);
    Bitmap.Free;
    MemTableEh1.Active:=True;
  end;
 end;
end;
manula вне форума Ответить с цитированием
Старый 10.04.2013, 16:11   #14
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

OnDrawColumnCell выполняется для каждой ячейки грида при отображении. Зачем туда засунули активизацию ADOQuery2 и MemTableEh1? Извините, но это даже не говно-код, а гораздо хуже. Что касается управления фонтом и цветом фона в каждой ячейке, то наиболее удобно пользоваться событием OnGetCellParams. И тоже происходит при прорисовке каждой ячейки. В OnDrawColumnCell прийдется все ручками прорисовывать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 10.04.2013 в 16:14.
Аватар вне форума Ответить с цитированием
Старый 10.04.2013, 16:38   #15
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

У меня просто связь такая, DataSourse1->MemTableEh1->DataSetDriverEh1->ADOQuery1. Виртуальная таблица хранится в MemTableEh1 и для отображения таблицы я его активирую, я же в самом DBGridEh не создаю поля и не связываю их с полями таблицу, а таблицу отображаю через запрос, поэтому реализовал так, за малым опытом работы с библиотекой EhLib, вот такая реализация.
manula вне форума Ответить с цитированием
Старый 10.04.2013, 16:43   #16
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А OnDrawColumnCell при чем? Активизируйте данные или OnCreate формы, или по кнопке. Да как угодно, но не в коде же, который может тысячи раз отработать в сеансе
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со сводной таблицей Вадичок Microsoft Office Excel 2 18.12.2012 23:38
Работа с таблицей anubiss Помощь студентам 5 02.05.2012 00:07
Работа с таблицей StringGrid Marsel737 Общие вопросы Delphi 8 31.03.2010 12:24
работа с таблицей photozaz БД в Delphi 4 27.09.2008 21:29
Работа с таблицей без БД Гр_ БД в Delphi 3 06.06.2007 16:31