Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2008.01.06;
Скачать: [xml.tar.bz2];

Вниз

Логическое поле в 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.005 c
15-1196511475
helpme
2007-12-01 15:17
2008.01.06
Странная повестка, помогите разобраться.


15-1196672711
Kerk
2007-12-03 12:05
2008.01.06
Одно и то же в разных источниках


2-1197311875
Ruzzz
2007-12-10 21:37
2008.01.06
точка в имени папки


15-1196689767
alsov
2007-12-03 16:49
2008.01.06
событие виндовс на email


15-1196426548
Автор
2007-11-30 15:42
2008.01.06
О разделе "Статьи"





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский