Блог Александра Божко
Архивы
Рубрики

TcxGridDBColumn

Пришел от нашего клиента запрос примерно  следующего содержания. Раньше, в старые добрые времена, я мог вводить время в поле ввода не используя разделитель. Например, набираю 0800, а программа сама преобразует введенное значение в корректный формат – 08:00.

То, как это работало раньше (в EhGrid), я, естественно, не помню. Задача заключается в том, как заставить работать это cxGrid. Думаю, мне это удалось. Поэтому, очередной пост шпаргалка.

    procedure TFMain.cxDBGridDBTableView1TimeToPropertiesChange
      (Sender: TObject);
    begin
      if Length((Sender as TcxButtonEdit).EditText) = 2 then
        PostMessage((Sender as TcxButtonEdit).Handle, WM_CHAR, Ord(':'), 0);
    end;

Т. е. при вводе текста в поле я проверяю его длину и если она равна двум символам, отсылаем окну ввода разделитель времени. Разделитель у меня прошит жестко – ‘:’. Здесь важно, что тип поля у меня – TcxButtonEdit, а не, скажем, TcxTimeEdit. Почему так – отдельная история. Возможно, при использовании TcxTimeEdit задача бы решалась проще. Но имеем то, что имеем. В принципе, логичным было бы для Sender‘а изменить свойство EditText. Примерно так:

(Sender as TcxButtonEdit).EditText:= (Sender as TcxButtonEdit).EditText+':';

Но почему-то, курсор после выполнения такой операции возвращается в начало строки. Поэтому пришлось делать так.

Вполне допускаю, что данное решение совершенно не оптимальное. Но, работает.

 

Другие статьи серии:

DevExpress. TIPS & TRICKS #0
DevExpress. TIPS & TRICKS #1
DevExpress. TIPS & TRICKS #2
DevExpress. TIPS & TRICKS #3
DevExpress. TIPS & TRICKS #4
DevExpress. TIPS & TRICKS #5
DevExpress. TIPS & TRICKS #5.5
DevExpress. TIPS & TRICKS #7

Рассказ о TcxGridDBTableView будет не полным, если не упомянуть о полях, а точнее, о столбцах, привязанных к полям набора данных. При подключении View к источнику данных такие столбцы создаются автоматически. В данном случае я имею ввиду объекты TcxGridDBColumn. Проще всего набором столбцов управлять в редакторе View. Но это несложно сделать и с помощью кода.

Читать далее

Продукты DevArt
Купить онлайн:



Читай русскоязычные Delphi блоги
Каталог блогов Blogdir.ru
Яндекс.Метрика