Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перекрашенные ячейки StringGrid_a и выделение. [D7, WinXP]


Zheksik ©   (2008-01-17 11:41:00) 

При выделении, ячейки которые были перекрашены, не выделяются цветом выделения. Как сделать, чтобы выделялись все ячейки, независимо от того, были ли они предварительно перекрашены?

P.S. Вопрос, как и ответ, по идее не сложный, но пока разобраться не получилось. Если есть желающие помоч, жду варианты решения.

p.s.2 не нужно умничать, я никого не заставляю отвечать, просто спрашиваю у тех кто знает ответ и готов помоч.


MsGuns   (2008-01-18 10:22:00) [1]

Стрингрид иногда "капризничает", не желая перерисовывать ячейки даже при "насильном" вызове Update (в частности, этот эффект  возникает при отрисовке поверх сетки других контролов: TImage,TEdit, TCombobox.. с последующим их прятанием) - в этом случае можно "дергать" его с помощью прыгания от текущей ячейки в соседнюю и обратно.


Zheksik   (2008-01-17 12:29:00) [2]

сдаюсь


{RASkov}   (2008-01-17 12:25:00) [3]

> [14] Zheksik ©   (17.01.08 12:23)
> а облетал, т.к. опять же имело значение state = [gdSelected..gdFocused]

"Облетал" твое условие, но никак не обработчик :) Ага)


Zheksik   (2008-01-17 12:23:00) [4]

{RASkov} ©   (17.01.08 12:20) [12]

серьёзно.

а облетал, т.к. опять же имело значение state = [gdSelected..gdFocused]


Zheksik   (2008-01-17 12:22:00) [5]

{RASkov} ©   (17.01.08 12:18) [9]
красота.

Спасибо.


{RASkov}   (2008-01-17 12:20:00) [6]

> [10] Zheksik ©   (17.01.08 12:18)
> да и вообще, при активации ячейки... облетаю вход в этот
> обработчик...

Вот уж не обманывай :)


{RASkov}   (2008-01-17 12:19:00) [7]

> И наверняка ИмеющаяФокус еще и выделенная.... проверь.

Т.е. нечто так:
if gdFocused in state then
begin
 !!!!!!!!!!!!!!!!!
end;


{RASkov}   (2008-01-17 12:18:00) [8]

> [8] Zheksik ©   (17.01.08 12:15)

Выделенных может быть много, а ИмеющаяФокус - одна...
И наверняка ИмеющаяФокус еще и выделенная.... проверь.


Zheksik   (2008-01-17 12:18:00) [9]

да и вообще, при активации ячейки... облетаю вход в этот обработчик...


Zheksik   (2008-01-17 12:15:00) [10]

{RASkov} ©   (17.01.08 12:05) [7]
:) прочитал

странно, почему я не попадаю в процедуру:
if (state = [gdFocused]) then
 begin
  !!!!!!!!!!!!!!!!!
 end;


при выделении в таблице?


{RASkov}   (2008-01-17 12:05:00) [11]

> [6] Zheksik ©   (17.01.08 12:01)

:)
Надеюсь про третье значение сего параметра сам в хелпе прочитаешь...:)


Zheksik   (2008-01-17 12:01:00) [12]

{RASkov} ©   (17.01.08 11:59) [5]
спасибо


{RASkov}   (2008-01-17 11:59:00) [13]

> [4] Zheksik ©   (17.01.08 11:54)

Тот же параметр, только проверяй gdFocused


Zheksik   (2008-01-17 11:54:00) [14]

кто-нибудь знает для чего первая ячейка остаётся не выделенной и как её выделять наравне с другими???


Zheksik   (2008-01-17 11:50:00) [15]

Григорьев Антон ©   (17.01.08 11:48) [1]
{RASkov} ©   (17.01.08 11:48) [2]

спасибо. Это то что нужно.


Григорьев Антон   (2008-01-17 11:48:00) [16]

Если уж вы перерисовываете ячейки, вы отвечаете за всё, в т.ч. и за выделение цветом при выборе. У события OnDrawCell есть параметр State - проверяйте в нём флаг gdSelected и в зависимости от этого закрашивайте ячейку обычным или выделенным цветом.


{RASkov}   (2008-01-17 11:48:00) [17]

> [0] Zheksik ©   (17.01.08 11:41)

Как и где красишь? Параметр State - учитываешь?


Наверх

Титульная страница Поиск, карта сайта Написать письмо