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

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

KOLmdvXLGrid на скроллбоксе


_Polymorphic_ ©   (2003-07-30 16:08:00) 

Задолбал я уже, наверное, всех своими вопросами в этом форуме, но всё-таки...
Все прекрасно работает для subj. Взялся за это по причине необходимости плавной прокрутки. Но в режиме редактирования прокрутка перемещает EditBox куда попало!
1) можно ли сделать плавную прокрутку как-нить по-другому?
2) если нельзя, то как можно прервать процесс редактирования с применением (или без) изменений.


_Polymorphic_   (2003-07-30 23:50:00) [1]

Спасибо, получил и опробовал успешно!


mdw   (2003-07-30 17:45:00) [2]

Да, кстати, обновление отправил.


mdw   (2003-07-30 17:41:00) [3]

Ошибка была в том что при активном едиторе и скролинге за скроллбар он оставался видимым и на том же месте, где была редактируемая ячейка, хотя реально она уже переместилась в другое. А EndEdit, BeginEdit были в protected, я их немного поправил и вынес в public.


_Polymorphic_   (2003-07-30 17:19:00) [4]

Самое интересное, чьи это методы: EndEdit, BeginEdit?
Просто я не нашел их у Grid'а (версия 1.06). И ещё я не понял, о какой ошибке речь:
>Зато нашел и исправил ошибку:)))


mdw   (2003-07-30 17:08:00) [5]

> но сюрпризом стал бегающий editbox.
Скролинг скроллбокса внутри Grid'а отследить не получится. Так что придется ручками закрывать редактор с помощью EndEdit(True, True);
Зато нашел и исправил ошибку:)))


_Polymorphic_   (2003-07-30 16:36:00) [6]

Просто при прокрутке родными средствами Вашей замечательной таблички перемещается резко, до следующей границы, т. е. отрисовка всегда начинается с угла ячейки. Конечно, это не недостаток. Но всё-таки попытался я представить себя на месте пользователя (сам себе бета-тестер, типа :) и тут же почувствовал сильный стресс от того, что каждый раз глазами приходилось искать строку, в которой я до этого находился.
С помощью скроллбокса и точной установки размеров таблицы я добился-таки того, чего хотел, но сюрпризом стал бегающий editbox. Я понимаю, что если делать такую прокрутку в самом компоненте, придется очень многое менять (к примеру,MouseToCol) , почти заново переписывать весь модуль компонента... Даже код, наверное, раза в 2 вырастет :). Проще сделать скроллбоксом: 5 минут и готово.
Пожалуйста, вышлите измененный компонент на мыло моё, когда поправите! Спасибо!
p.s. В принципе, может, и сам поправлю, только скажите, где :)


mdw   (2003-07-30 16:28:00) [7]

>2) если нельзя, то как можно прервать процесс редактирования с применением (или без) изменений.

   procedure  BeginEdit;
   procedure  EndEdit(ASave: Boolean);


mdw   (2003-07-30 16:20:00) [8]

>Но в режиме редактирования прокрутка перемещает EditBox куда попало!
Гм. Да это просто ошибка. Поправлю.

>1) можно ли сделать плавную прокрутку как-нить по-другому?
Не понял вопрос, что значит "плавную прокрутку"


Наверх

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