Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

DBGrid & CheckBox [D7, XP]


Ref ©   (2006-08-31 15:36:00) 

Доброго времени суток. У меня такой вопрос:
В таблице Access'e если поле имеет булевый тип, то значение этого поля отбражается в виде ЧекБокса. Возможно ли сделать тоже самое в DBGrid если значение этого поля в DataSet'e тоже имеет булевый тип. заранее благодарен.
p.s. Причина этого в том, что пользователь работающий с моим приложением пугается, когда видит в DBGrid значение False или Trueю


Lexer   (2006-08-31 16:37:00) [1]

Для смены, поставить еще в DBGrid.OnDblClick:
if (CompareText(DBGrid.SelectedField.FieldName,
  'my_boolean') = 0) then CheckedRecord;


procedure TForm1.CheckedRecord;
begin
 with DBGrid.DataSource.DataSet do
 try
   Edit;
   FieldByName('my_boolean').AsInteger :=
     Ord(not Boolean(FieldByName('my_boolean').AsInteger));
   Post;
 finally
   dbgCurDelProvider.Repaint;
 end;
end;


Lexer   (2006-08-31 16:33:00) [2]

Самый простой вариант:
Column.Font.Name := 'Wingdings';
TIntegerField(Query.FieldByName('my_boolean')).DisplayFormat := 'ь;'''';''''';


Reindeer Moss Eater   (2006-08-31 16:10:00) [3]

Есть и бесплатный вариант.


Ref   (2006-08-31 16:04:00) [4]

>[5]
EhLib его бесплатная версия существует, или это из серии ничего не бывает на халяву :)


Reindeer Moss Eater   (2006-08-31 15:59:00) [5]

В EhLib'е есть такое грид


Ref   (2006-08-31 15:54:00) [6]

Эт все понятно. Может существуют такие компоненты типа DBGrid'a, которые имеют возможность отобразить этот чек бокс
P.s. Просто устал я с ними спорить и доказывать, что им будет понятно зеленый и красные цвета, а им  хоть ты тресни нужен этот долбаный Чек Бокс :)


Elen   (2006-08-31 15:45:00) [7]

P.P.S Если твоему пользователю всетаки не понравится такой вариант то порули OnDrawDataCell. Там ты можеш закрасить ячейку разными цветами что ИМХО будет информативнее


Elen   (2006-08-31 15:41:00) [8]

P.S. Это выглядит не как ЧекБокс, но просто в реализации


Elen   (2006-08-31 15:40:00) [9]

Попробуй использовать свойство TDBGrid.Columns[].PickList
Только тебе нужно будет анализировать выбранное пользователем в этом списке например через событие BeforeEdit


Наверх

Титульная страница Поиск, карта сайта Написать письмо