Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.17;
Скачать: CL | DM;

Вниз

DBGrid & CheckBox   Найти похожие ветки 

 
Ref   (2006-08-31 15:36) [0]

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


 
Elen ©   (2006-08-31 15:40) [1]

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


 
Elen ©   (2006-08-31 15:41) [2]

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


 
Elen ©   (2006-08-31 15:45) [3]

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


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

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


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

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


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

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


 
Reindeer Moss Eater ©   (2006-08-31 16:10) [7]

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


 
Lexer ©   (2006-08-31 16:33) [8]

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


 
Lexer ©   (2006-08-31 16:37) [9]

Для смены, поставить еще в 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;



Страницы: 1 вся ветка

Текущий архив: 2006.09.17;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.057 c
2-1156679246
Randomix
2006-08-27 15:47
2006.09.17
Видео Чат


11-1132651033
MTsv DN
2005-11-22 12:17
2006.09.17
Как убрать скролл у ListView...


4-1147793657
makxi
2006-05-16 19:34
2006.09.17
как определит, как программа открыла файл


4-1148023471
salexn
2006-05-19 11:24
2006.09.17
Thread, DLL и отрисовка данных


4-1147863368
roughneck
2006-05-17 14:56
2006.09.17
InsertMenu с картинкой