Главная страница
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.032 c
2-1156438482
tmpl
2006-08-24 20:54
2006.09.17
сдвиг в DWord


2-1157007639
Neket
2006-08-31 11:00
2006.09.17
Database


15-1156279785
Ketmar
2006-08-23 00:49
2006.09.17
узнать keyboard layout консоли другого процесса.


15-1156771068
worldmen
2006-08-28 17:17
2006.09.17
Установка SUSE 9.


4-1147936539
serguar
2006-05-18 11:15
2006.09.17
в каком модуле определена константа GWW_HWNDPARENT