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

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

Уделение изображения курсора из клетки StringGrid после ввода в к [D7, Win2k, WinXP]


Игорь Степанов ©   (2005-12-18 13:39:00) 

Уважаемые мастера,

Я использую StringGrid для ввода пользователем чисел. StringGrid работает в режиме Options goEditing=True.

При этом при переходе в колонке вниз от клетки к клетке в клетках, куда уже введено число остаётся изображение курсора. Этот дефект ничему не мешает, но хотелось бы от него избавиться. Вероятно, где-то надо записать метод StringGrid1.Refresh. Надо ли это делать в процедуре StringGrid1DrawCell или где-то в другом месте?

С уважением,

Игорь Степанов


sniknik   (2005-12-21 16:12:00) [1]

ну если это на нескольких компах подтвердилось, то может и ты там "руку приложил" гденибудь. (ошибка потихоньку перекочевывает в 17ю строку ;)


Игорь Степанов   (2005-12-21 16:05:00) [2]

Я сейчас перепробовал классическую и другие темы, но это не помогает.
Мой приятель на другом компьютере тоже обнаружил этот глюк, но реже, чем на моём.

Может быть в событии OnSelectCell добавить Refresh или Invalidate?

С уважением, Игорь Степанов


sniknik   (2005-12-21 15:28:00) [3]

так это и так работает без глюков. глюк есть (если подтвердилось с темой) в конкретной настройке твоей винды. (гдето чтото с caret-кой неладно) у других этого не должно быть.


Игорь Степанов   (2005-12-21 14:07:00) [4]

Уважаемые мастера,

Мне нужно, чтобы этого глюка не было не только на моём компьютере, а на любом компьютере любого пользователя, который будет работать с моей программой. Поэтому, подскажите, пожалуйста, как то, что вы предлагаете, сделать программным способом.

С уважением,

Игорь Степанов


sniknik   (2005-12-20 18:23:00) [5]

в XP это в свойствах экрана, можно правой кнопкой мыши по десктопу -> свойства -> первая вкладка "темы".


LORAN   (2005-12-20 18:17:00) [6]

Пускк-Настройка-Панель управления-Мышь
Выбери схему стандартная ( классическая)


Игорь Степанов   (2005-12-20 18:03:00) [7]

Какую тему в виндах?

Что это обозначает?

С уважением,

Игорь Степанов


sniknik   (2005-12-20 11:08:00) [8]

попробуй тему в виндах поменять на стандартную, или лучше на классическую. (видел глюк с курсором мыши на нестандартной теме... может аналогичное)


Игорь Степанов   (2005-12-20 10:35:00) [9]

Уважаемый Евгений,

Излагаю процесс ввода чисел пошагово.
После открытия формы со StringGrid столбик с клетками, куда следует вводить числа пока пустой. Никакого курсора нет. Щёлкаю на самой верхней клетке. В ней начинает мигать курсор. Ввожу число. Курсор продолжает мигать справа от числа. Мышкой щёлкаю на нижележащей клетке. В ней появляется мигающий курсор. Из вышележащей клетки иногда курсор исчезает, а иногда остаётся, но уже не мигает. И этот феномен наблюдается при вводе в нижележащие клетки.
Иными словами, точной закономерности нет. В чём причина, мне неясно.

С уважением, Игорь Степанов


jack128   (2005-12-18 14:25:00) [10]

Игорь Степанов   (18.12.05 13:39)
куда уже введено число остаётся изображение курсора

Что то не смог воспроизвести.  Опиши пошагово чтоо нужно делать.

Игорь Степанов   (18.12.05 13:39)
Вероятно, где-то надо записать метод StringGrid1.Refresh

Нет. метод Refresh вызывается вручную исключительно редко.  Обычно вместот него вызывается Invalidate

Игорь Степанов   (18.12.05 13:39)
Надо ли это делать в процедуре StringGrid1DrawCell

Нет, ни в коем случае.  Это приведет в бесконечной рекурсии.  Если твой глюк происходит при переходе от одной ячейке к другой, то вызывай Invalidate где нить в OnSelectCell


Наверх

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