| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > StringGrid |
| Автор: Digo 12.10.2004, 17:10 |
| У меня на форме несколько StringGrid - ов и в каждом подсвечено по одной ячейке. Они используются для вывода и поэтому подсветка портит внешний вид. Можно ли убрать это выделение. Спасибо. |
| Автор: x77 12.10.2004, 17:33 |
| штатными средствами - нельзя. извратами - можно, но, мне кажется, не нужно. если в гридах используется всего одна ячейка, то какой вообще смысл использовать гриды? может, стоит подыскать чего попроще, Label, Panel, PaintBox в конце-концов. Добавлено @ 17:38 Pakshin A. S., коллега, вы бредите здесь проблема не в отрисовке ячейки. вместо всего, что вы написали достаточно убрать из StringGrid1.Options goDrawFocusSelected - эффект будет тот же. здесь проблема в самой винде, которая при потере контролом фокуса выделяет его цветом. в некоторых контролах это обходится установкой свойства HideSelection, но в StringGrid'е такого свойства просто нет. протесть сам свой код на двух гридах. на одном он будет работать, а на двух в момент смены активного контрола опять появится выделение. Добавлено @ 17:40 эк оно проглючило |
| Автор: Pakshin A. S. 12.10.2004, 17:33 | ||
Создаем событие OnDrawCell
|
| Автор: Pakshin A. S. 12.10.2004, 18:43 | ||
Меня? Может, но этот код небходим: при Options goDrawFocusSelected;=false при появлении формы первая ячейка будет выделенной!!! Мой код убирает её выделение... |
| Автор: x77 12.10.2004, 18:53 |
| Pakshin A. S., да нет, проглючило форум. посмотри на время постингов, я писал после тебя, а сообщения легли до тебя. не будет она выделенной. а вот при потере фокуса - станет выделенной, хоть с твоим кодом, хоть без него. |
| Автор: Pakshin A. S. 12.10.2004, 18:58 | ||
А, по-моему, всё в порядке: после первого поста не прошло десять минут... |
| Автор: Digo 12.10.2004, 20:43 |
| x77 - я гирдами пользуюсь потому что нужно много данных выводить. StringGrid1.Options goDrawFocusSelected:=false у меня стоит по умолчанию, конечно если таблица активна выделение пропадает, но от этого не легче Pakshin A. S. В твоем коде выводится ошибка на StrPCopy(buf, Clls[ACol, ARow]); Это наверное Cells? и в DT_SENGLELINE наверно DT_SINGLELINE... На одной выделение пропадает на 2 и более нет. |
| Автор: Pakshin A. S. 12.10.2004, 20:51 |
| Верно, просто спешил... |
| Автор: x77 12.10.2004, 21:03 |
| Digo, а если взять тот же TListView? |
| Автор: p0s0l 12.10.2004, 22:46 | ||
|
| Автор: p0s0l 12.10.2004, 23:15 | ||
| Ан нет, поспешил я Можно так попробовать:
Чуть не забыл: goRangeSelect = False, goDrawFocusSlected = False, goRowSelect = False |
| Автор: Digo 13.10.2004, 19:39 |
| Спасибо всем за помощь |