powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Маска ввода ячейки cxGrid
17 сообщений из 17, страница 1 из 1
Маска ввода ячейки cxGrid
    #40061565
very_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Подскажите, как установить маску ввода на ячейку cxGrid?
Если делать FieldByName('PHONE').EditMask := FieldByName('MASK').AsString; то маска устанавливается на все строки ячейки, а нужно на определенные.
...
Рейтинг: 0 / 0
Маска ввода ячейки cxGrid
    #40061573
энди
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну если чисто теоретически то перехватывать событие редактирования на уровне датасета или грида и менять маску.
...
Рейтинг: 0 / 0
Маска ввода ячейки cxGrid
    #40061577
very_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в этом то и проблема, как маску поменять на нужной ячейке?
...
Рейтинг: 0 / 0
Маска ввода ячейки cxGrid
    #40061580
энди
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так меняйте как и делали у поля, а после завершения редактирования сбрасывайте.
...
Рейтинг: 0 / 0
Маска ввода ячейки cxGrid
    #40061595
very_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не красиво получается, нажимаю редактирование, весь столбец заполняется маской поля :(
...
Рейтинг: 0 / 0
Маска ввода ячейки cxGrid
    #40061614
энди
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну тогда поищите событие которое можно перехватить у cxgrid и попробуйте там активировать маску, у меня сейчас нет под рукой возможности посмотреть к сожалению.
...
Рейтинг: 0 / 0
Маска ввода ячейки cxGrid
    #40061633
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть DisplayFormat, а есть EditFormat.
А у колонки есть событие OnGetPropertiesForEdit
и OnGetProperties если вы хотите, чтоы в одной колонке отображались данные разных типов
...
Рейтинг: 0 / 0
Маска ввода ячейки cxGrid
    #40061656
very_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, но в таком случае:
Код: 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
Маска ввода ячейки cxGrid
    #40061663
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
very_
Да, но в таком случае:
маска устанавливается на все строки.
Или я не так делаю?

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


хотя вам в событие передаётся
Код: pascal
1.
2.
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
  var AProperties: TcxCustomEditProperties
...
Рейтинг: 0 / 0
Маска ввода ячейки cxGrid
    #40061668
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Маска ввода ячейки cxGrid
    #40061720
very_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Переделал в таком виде:
Код: 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
Маска ввода ячейки cxGrid
    #40061724
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Маска ввода ячейки cxGrid
    #40061727
very_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не загрузился ваш последний ответ :(
...
Рейтинг: 0 / 0
Маска ввода ячейки cxGrid
    #40061890
very_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DimaBr,

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

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

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


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