Главная страница
    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.008 c
15-1196689348
Сергей М.
2007-12-03 16:42
2008.01.06
bash


2-1197042910
Zheksik
2007-12-07 18:55
2008.01.06
Почему 0.20 <= 0.20 ложь???


15-1196676782
vajo
2007-12-03 13:13
2008.01.06
Стоит ли брать эту видеокарту?


3-1188290958
ANB
2007-08-28 12:49
2008.01.06
Самый быстрый способ разобрать XML в оракл ?


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
Английский Французский Немецкий Итальянский Португальский Русский Испанский