Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2015, 13:33   #1
KBO
Форумчанин
 
Регистрация: 11.06.2010
Сообщений: 525
По умолчанию Скрытие символов в колонках DBGrid (мнимое свойство «PasswordChar»)

Доброе время суток,
Есть колонка в DBGrid, которая отображает пароли. Мне нужно их скрыть, под символом «***» (как в Edit свойство «PasswordChar»).
Следующий код это делает, но не до конца:

Код:
procedure TFMain.dbgrGovEtalonListDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
var
  maskValue: String;
  aRect: TRect;
begin]
  maskValue := '***';
  aRect := Rect;
  if column.FieldName = 'PWD' then
  begin
    dbgrGovEtalonList.Canvas.FillRect(Rect);
    DrawText(dbgrGovEtalonList.Canvas.Handle, PChar(maskValue), Length(maskValue), aRect, DT_SINGLELINE or DT_LEFT
             or DT_VCENTER);
  end
  else dbgrGovEtalonList.DefaultDrawColumnCell(Rect, DataCol, Column, state);
end;
Дело в том, что если по значению этой колонки в DBGrid, щелкнуть два раза левой кнопкой мышки мышки, все тайное становится явным.
- Что не так?

Заранее спасибо.

Последний раз редактировалось KBO; 03.12.2015 в 14:00.
KBO вне форума Ответить с цитированием
Старый 03.12.2015, 13:51   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А ты попробуй поставить это поле ReadOnly.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.12.2015, 13:59   #3
KBO
Форумчанин
 
Регистрация: 11.06.2010
Сообщений: 525
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А ты попробуй поставить это поле ReadOnly.
Не, не получается . Хоть ставь "true" в DataSet, хоть в DBGrid

А если так, по-глупому конечно, но пока работает:
к верхнему коду прибавить

Код:
procedure TFPeople.DBGridDblClick(Sender: TObject);
begin
  DBEdit1.Field.EditMask := '***'+';1;*';
end;

procedure TFPeople.DBGridCellClick(Column: TColumn);
begin
  DBEdit1.Field.EditMask := '***'+';1;*';
end;

procedure TFPeople.DBNanigatorBeforeAction(Sender: TObject;
  Button: TNavigateBtn);
begin
  DBEdit1.Field.EditMask := '';
end;

Последний раз редактировалось Stilet; 03.12.2015 в 16:16.
KBO вне форума Ответить с цитированием
Старый 03.12.2015, 15:14   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А зачем вообще его в гриде отображать? Что забитое, что нет одно и то же. Редактировать в отдельной форме. Если в датасете оно нужно, а в гриде нет, то нужные поля в нем ручками проставить
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 03.12.2015, 15:43   #5
KBO
Форумчанин
 
Регистрация: 11.06.2010
Сообщений: 525
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А зачем вообще его в гриде отображать? Что забитое, что нет одно и то же. Редактировать в отдельной форме. Если в датасете оно нужно, а в гриде нет, то нужные поля в нем ручками проставить
Да, я и сам думал убить его в DBGrid (оно там на фиг не нужно).
По началу я его сделал "false", а потом в процессе работы программы, случайно по правой кнопке (мышки на DBGrid), увидел контекстное меню, одним из пунктов которого, был пункт "Редактор таблицы", в котором можно включить отображение любых полей (имеющихся в DBGrid).
Опа..., нежданчик
Вот, чтоб в дальнейшем таких своеобразных "нежданчиков" не было, лучше сразу обработать...
Интересно, то что до сих пор, в свойствах полей DBGrid такого нужного свойства нет (хотя в Edit и др. оно есть)

Последний раз редактировалось KBO; 03.12.2015 в 15:47.
KBO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрытие символов на половину Edit KBO Помощь студентам 17 02.09.2015 13:48
Скрытие поля в DBGrid Lokos БД в Delphi 6 20.02.2013 11:58
Свойство DBGrid Ericnex БД в Delphi 11 11.09.2012 11:33
скрытие символов Neymexa Microsoft Office Access 4 06.05.2010 09:09
Loockup в колонках Dbgrid ГОСЕАН БД в Delphi 4 26.07.2007 08:39