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

Вниз

Логическое поле в grid`е   Найти похожие ветки 

 
Yurikon   (2007-08-31 14:33) [0]

Здраствуйте!

Подскажите плиз, как в grid`е отобразить логическое поле в виде checkbox`а?
А то ерунда получается - все на русском, а в таблице юзеру предлагается ввести True или False, да и писать долго.


 
Megabyte ©   (2007-08-31 14:44) [1]

Сделай ввод поля не вы гриде, а отдельно в DBCheckBox


 
Jeer ©   (2007-08-31 14:51) [2]


> Yurikon   (31.08.07 14:33)


Сделать наследника grid с реализацией требуемого функционала.


 
Johnmen ©   (2007-08-31 14:52) [3]

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=168


 
fd979 ©   (2007-08-31 15:15) [4]

EhLiB -> DBGridEh там это реализовано


 
Yurikon   (2007-08-31 17:40) [5]


> Johnmen

Спасибо, за ссылку!

Единственный косяк в этом примере, если ячейка получает фокус - то там опять отображается True\False. Без фокуса я закрасил белым прямоугольником эти значения, а вот как сделать, чтобы и с фокусом отображались только checkbox`ы не могу понять.


 
sniknik ©   (2007-08-31 19:06) [6]

> если ячейка получает фокус - то там опять отображается True\False.
наверное всетаки не фокус, а в режиме редактирования? когда появляется поле InplaceEditor-а, ну так поставь у этого поля "ридонли" в труе. и все.

если всетаки при фокусе (там что перерисовкой делается? и "флаг фокуса" не учитывается) то проще сделать полю пустой обработчик onGetText тогда нечего рисовать будет, в любом режиме.


 
Германн ©   (2007-09-01 01:00) [7]


> А то ерунда получается - все на русском, а в таблице юзеру
> предлагается ввести True или False

А может просто в свойстве TBooleanField.DisplayValues поставить "Да;Нет" ? Всё будет на русском и логично и без извратов?


 
Yurikon   (2007-09-01 11:58) [8]


> sniknik


Сорри, конечно в режиме редактирования. Поставить рид онли этому полю нельзя, так как оно должно изменяться по клику мыши. Сделал пустой обработчик onGetText - избавился от текста. Но если два раза кликнуть мышью, то появляется курсор для ввода, а это уже косяк. Как подавить режим редактирования с курсором для ввода??


> Германн

Да;Нет - без извратов, не спорю. Но не удобно! Мы не ищем легких путей ;).


 
Johnmen ©   (2007-09-01 12:20) [9]


> Yurikon   (01.09.07 11:58) [8]
> Но если два раза кликнуть мышью, ...

Обработай клик от мыши, "убери" ввод.
А вообще, если интересно, посмотри, как это делается в TDBGridEh из EhLib.


 
sniknik ©   (2007-09-01 12:44) [10]

> Поставить рид онли этому полю нельзя, так как оно должно изменяться по клику мыши.
как нельзя? меняешь то его ты сам, что с того что для контролов будет ридонли стоять? (ну может не у поля в датасете, а у колонки в гриде поставить, сам пробуй, где не будет мешать явной записи)


 
Yurikon   (2007-09-01 17:58) [11]


> как нельзя? меняешь то его ты сам, что с того что для контролов
> будет ридонли стоять? (ну может не у поля в датасете, а
> у колонки в гриде поставить, сам пробуй, где не будет мешать
> явной записи)


Sniknik, поставить ридонли например для Колонки можно, делал так. Проблема в том, что хотя  ничего ввести нельзя, но курсор все равно появляется. ((

Johnmen, поясни плиз, как "убрать" ввод?


 
sniknik ©   (2007-09-01 18:53) [12]

> но курсор все равно появляется. ((
верно, блин...

ну всегда можно убрать создание InplaceEditor-а, для нужного поля...

type
 TMyDBGrid  = class(TDBGrid)
 protected
   function  CreateEditor: TInplaceEdit; override;
 end;

 TDBGrid  = class(TMyDBGrid);

 TForm1 = class(TForm)
....

function TMyDBGrid.CreateEditor: TInplaceEdit;
begin
 if SelectedField.FieldName="Name"
   then Abort
   else result:= inherited CreateEditor;
end;


 
sniknik ©   (2007-09-01 18:57) [13]

не, не правильно, работает если только в поле первый раз тыкать, если он уже создался при редактировании другого поля то вызывается... надо вызов перекрывать.



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

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

Наверх




Память: 0.49 MB
Время: 0.013 c
2-1197368334
Alexandr Malygin
2007-12-11 13:18
2008.01.06
округление


2-1197288574
alshtam
2007-12-10 15:09
2008.01.06
firbird


15-1196266367
Slider007
2007-11-28 19:12
2008.01.06
С днем рождения ! 28 ноября 2007 среда


2-1197352608
Alexandr Malygin
2007-12-11 08:56
2008.01.06
арифметика


15-1196479897
Ricks
2007-12-01 06:31
2008.01.06
Кто у нас силен в математике?