Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Маска ввода ячейки cxGrid / 17 сообщений из 17, страница 1 из 1
12.04.2021, 08:07
    #40061565
very_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Маска ввода ячейки cxGrid
Добрый день! Подскажите, как установить маску ввода на ячейку cxGrid?
Если делать FieldByName('PHONE').EditMask := FieldByName('MASK').AsString; то маска устанавливается на все строки ячейки, а нужно на определенные.
...
Рейтинг: 0 / 0
12.04.2021, 08:52
    #40061573
энди
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Маска ввода ячейки cxGrid
ну если чисто теоретически то перехватывать событие редактирования на уровне датасета или грида и менять маску.
...
Рейтинг: 0 / 0
12.04.2021, 09:07
    #40061577
very_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Маска ввода ячейки cxGrid
в этом то и проблема, как маску поменять на нужной ячейке?
...
Рейтинг: 0 / 0
12.04.2021, 09:24
    #40061580
энди
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Маска ввода ячейки cxGrid
так меняйте как и делали у поля, а после завершения редактирования сбрасывайте.
...
Рейтинг: 0 / 0
12.04.2021, 09:59
    #40061595
very_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Маска ввода ячейки cxGrid
Не красиво получается, нажимаю редактирование, весь столбец заполняется маской поля :(
...
Рейтинг: 0 / 0
12.04.2021, 10:35
    #40061614
энди
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Маска ввода ячейки cxGrid
ну тогда поищите событие которое можно перехватить у cxgrid и попробуйте там активировать маску, у меня сейчас нет под рукой возможности посмотреть к сожалению.
...
Рейтинг: 0 / 0
12.04.2021, 11:18
    #40061633
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Маска ввода ячейки cxGrid
Есть DisplayFormat, а есть EditFormat.
А у колонки есть событие OnGetPropertiesForEdit
и OnGetProperties если вы хотите, чтоы в одной колонке отображались данные разных типов
...
Рейтинг: 0 / 0
12.04.2021, 12:06
    #40061656
very_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Маска ввода ячейки cxGrid
Да, но в таком случае:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
procedure TfrmCont.cxContViewContGetPropertiesForEdit(
  Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
  var AProperties: TcxCustomEditProperties);
begin
  inherited;
  with qryContDtl do begin
    if Active and not IsEmpty then begin
      TcxTextEditProperties(cxContViewCont.Properties).EditFormat := FieldByName('CMASK').AsString;
    end;
  end;
end;



маска устанавливается на все строки.
Или я не так делаю?
...
Рейтинг: 0 / 0
12.04.2021, 12:16
    #40061663
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Маска ввода ячейки cxGrid
very_
Да, но в таком случае:
маска устанавливается на все строки.
Или я не так делаю?

Вы и устанавливаете на ВСЕ строки
Код: pascal
1.
TcxTextEditProperties(cxContViewCont.Properties).EditFormat


хотя вам в событие передаётся
Код: pascal
1.
2.
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
  var AProperties: TcxCustomEditProperties
...
Рейтинг: 0 / 0
12.04.2021, 12:22
    #40061668
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Маска ввода ячейки cxGrid
...
Рейтинг: 0 / 0
12.04.2021, 14:23
    #40061720
very_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Маска ввода ячейки cxGrid
Переделал в таком виде:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
procedure TfrmCont.cxContViewContGetPropertiesForEdit(
  Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
  var AProperties: TcxCustomEditProperties);
var
 sMask:string;
begin
  with qryContDtl do begin
    if Active and not IsEmpty then begin
      sMask := FieldByName('CMASK').AsString;
      TcxMaskEditProperties(AProperties).EditMask := sMask;
    end;
  end;
end;



Все равно как у вас не получается (pic1).
Перехожу на поле у которого нет маски, маска слетает со всех строк и т.д (pic2).
...
Рейтинг: 0 / 0
12.04.2021, 14:48
    #40061724
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Маска ввода ячейки cxGrid
...
Рейтинг: 0 / 0
12.04.2021, 14:53
    #40061727
very_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Маска ввода ячейки cxGrid
не загрузился ваш последний ответ :(
...
Рейтинг: 0 / 0
13.04.2021, 07:37
    #40061890
very_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Маска ввода ячейки cxGrid
DimaBr,

Огромное Вам спасибо!
Все получилось!
...
Рейтинг: 0 / 0
13.04.2021, 09:02
    #40061921
very_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Маска ввода ячейки cxGrid
DimaBr,

Теперь если ввожу значение не по маске, получаю ошибку The edit value is invalid.
Как ее заглушить?
...
Рейтинг: 0 / 0
13.04.2021, 09:50
    #40061935
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Маска ввода ячейки cxGrid
very_,

так в этот жеж и прикол, чтобы вводить по маске, зачем же глушить?
...
Рейтинг: 0 / 0
13.04.2021, 13:16
    #40062020
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Маска ввода ячейки cxGrid
Теперь если ввожу значение не по маске, получаю ошибку
Зачем тогда маска, если вы вводите не по маске ?
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Маска ввода ячейки cxGrid / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]