Текущий архив: 2004.11.14;
Скачать: CL | DM;
ВнизСделать содержимое ячейки DBGrid невидимым Найти похожие ветки
← →
mccop (2004-10-19 11:19) [0]По нажатию на кнопку нужно пробегаться по Query и если содержимое поля не удовлетворяет определенному условию, делать его невидимым, при этом не изменяя содержимое поля.
Что-то типа Field.DisplayText:="", но Field.DisplayText readonly к сожалению :((.
Подскажите варианты может какие...?
← →
Ega23 © (2004-10-19 11:22) [1]CalculatedField тебе поможет
← →
Draught © (2004-10-19 11:25) [2]цвет текста не пробовал менять под цвет поля - тоже не видимое будет )
DBGrid2.Canvas.Font.Color:=<цвет>
← →
Draught © (2004-10-19 11:26) [3]
DBGrid.Canvas.Font.Color:=DBGrid.Canvas.Brush.Color;
вот так вот должно получиться
← →
Draught © (2004-10-19 11:30) [4]а условие можно так описывать и даже не бегать повсему ДБгриду
например про датуif DBGrid.DataSource.DataSet.FieldByName("FINDATE").AsDateTime>=Date then
begin
DBGrid.Canvas.Font.Color:=DBGrid.Canvas.Brush.Color;
end;
← →
Vlad © (2004-10-19 11:31) [5]
> Draught © (19.10.04 11:26) [3]
Уж тогда до конца говори.
Это все должно происходить в событии TDBGrid.OnDrawColumnCell
А еще проще (там же): FillRect(Rect)
← →
DenK_vrtz © (2004-10-19 11:32) [6]>По нажатию на кнопку нужно пробегаться по Query и если содержимое поля не удовлетворяет определенному условию, делать его невидимым, при этом не изменяя содержимое поля.
TField.OnGetText
← →
Draught © (2004-10-19 11:34) [7]
> Vlad © (19.10.04 11:31) [5]
>
> > Draught © (19.10.04 11:26) [3]
>
> Уж тогда до конца говори.
А ну, да-да, просто забыл добавить :)))))
← →
mccop (2004-10-19 12:16) [8]то есть нужно чтоб до нажатия на кнопку был стандартный обработчик события TDBGrid.OnDrawColumnCell, при нажатии на кнопку присваивать новый обработчик, в котором реализована ф-ция типа
DBGrid.Canvas.Font.Color:=DBGrid.Canvas.Brush.Color;
вызывать DBGrid.Repaint
а потом (после удовлетворения интереса юзера) возвращать стандартный обработчик на TDBGrid.OnDrawColumnCell
я правильно понял?
← →
Draught © (2004-10-19 12:52) [9]
> mccop (19.10.04 12:16) [8]
> то есть нужно чтоб до нажатия на кнопку был стандартный
> обработчик события TDBGrid.OnDrawColumnCell, при нажатии
> на кнопку присваивать новый обработчик, в котором реализована
> ф-ция типа
> DBGrid.Canvas.Font.Color:=DBGrid.Canvas.Brush.Color;
> вызывать DBGrid.Repaint
> а потом (после удовлетворения интереса юзера) возвращать
> стандартный обработчик на TDBGrid.OnDrawColumnCell
> я правильно понял?
Ну типа того.
На самом деле узнать условие у юзверя и прорисовать грид заново, а потом после отмены условия или выбора другого соответственно прорисовать "в другом направлении".
← →
Johnmen © (2004-10-19 12:54) [10]Так проще и логичнее
DBGrid.Columns[<индекс твоей колонки>].Visible:=False;
← →
mccop (2004-10-19 12:57) [11]>На самом деле узнать условие у юзверя и прорисовать грид заново, >а потом после отмены условия или выбора другого соответственно >прорисовать "в другом направлении".
Не совсем понял, что понимается под прорисовать и прорисовать в другом направлении, можно уточнить...?
← →
Johnmen © (2004-10-19 12:58) [12]Немного не то сказал...
По условию вопроса наиболее простое и понятное решение Ega23 © (19.10.04 11:22) [1]
← →
Vlad © (2004-10-19 13:06) [13]
> Johnmen © (19.10.04 12:58) [12]
Простое, это если речь об одном поле, а если в этом "изврате" участвуют несколько полей, то что ж на каждое делать калькулируемый дубликат? :-)
← →
Sergey13 © (2004-10-19 13:10) [14]2mccop (19.10.04 11:19)
А зачем все это?
← →
mccop (2004-10-19 13:22) [15]2 jonmen
но ведь у меня то данные реальные из базы вибираются, что ж мне на каждое реальное поле а их там 31 (Месячный отчет) создавать калькулируемое?
← →
Val © (2004-10-19 13:22) [16]Не нужно от пользователя данные скрывать(он потом скажет - а яхочу потом ткнуть и посмотреть что же там - на сколько отличается от нужного, к примеру). Красьте строки/ячейки лучше.
← →
Vlad © (2004-10-19 13:31) [17]
> mccop (19.10.04 13:22) [15]
Ну как вариант тебе уже сказали - можно отключить прорисовку "ненужных" ячеек.
А вобще, лучше бы (наверное) заставить сервер ломать голову над возвращаемым набором данных, т.е. чтоб результат уже возвращался в том виде, котором надо.
← →
Johnmen © (2004-10-19 13:35) [18]
> Vlad © (19.10.04 13:06) [13]
Тогда уж OnGetText.
Просто я чувствую внутренний дискомфорт, когда смешивают рисование с сущностным содержимым...
← →
Vlad © (2004-10-19 13:44) [19]
> Johnmen © (19.10.04 13:35) [18]
А можно не просто закрашивать ячейку, можно на ее месте рисовать какой нибудь красивый цветочек, чтоб дискомфорту меньше было :-)
← →
mccop (2004-10-19 13:55) [20]ок, всем спасибо
Страницы: 1 вся ветка
Текущий архив: 2004.11.14;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.046 c