Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.29;
Скачать: CL | DM;

Вниз

Уделение изображения курсора из клетки StringGrid после ввода в к   Найти похожие ветки 

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

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

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

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

С уважением,

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


 
jack128 ©   (2005-12-18 14:25) [1]

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

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

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

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

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

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


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

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

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

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


 
sniknik ©   (2005-12-20 11:08) [3]

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


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

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

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

С уважением,

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


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

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


 
sniknik ©   (2005-12-20 18:23) [6]

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


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

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

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

С уважением,

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


 
sniknik ©   (2005-12-21 15:28) [8]

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


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

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

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

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


 
sniknik ©   (2005-12-21 16:12) [10]

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



Страницы: 1 вся ветка

Текущий архив: 2006.01.29;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.051 c
2-1135596187
kukushka-Q
2005-12-26 14:23
2006.01.29
Перестает работать MS Access база с dll на Delphi на другом компе


1-1135449800
SEN
2005-12-24 21:43
2006.01.29
Значение текстового поля в Word


9-1123773004
Xenon
2005-08-11 19:10
2006.01.29
Статейка для новичков


4-1132169649
AlSOS
2005-11-16 22:34
2006.01.29
%USERPROFILE%


4-1132145443
SergGG
2005-11-16 15:50
2006.01.29
послать сообщение на другой компьютер