![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Скролл "колесиком" в DBGrid работает только в видимой части грида [D7, Access]
Michael5 © (2005-10-06 20:52:00)Несмотря на то, что с помощью полосы прокрутки нормально проматывается. А мышью выделение переходит от одной ячейки к другой только в пределах изображенных в данный момент в гриде части данных, и не заставляет его проматываться...
Подскажите пожалуйста!
Германн (2005-10-07 15:54:00) [1]2 sniknik © (06.10.05 21:10) [4]
>кстати там не забыли, там просто так оригинально обрабатывают.
Не. Именно забыли переопределить процедуры DoMouseWheelUp & DoMouseWheelDown.
jiny (2005-10-07 09:55:00) [2]Скорее всего ты чего то путаешь, у меня уже 3 проекта на DbGridEh написано и ни один не глючит в части грида.
Michael5 (2005-10-06 21:50:00) [3]То ли у меня руки кривые, то ли что, но пробовал я этот компонент - какие-то сложности были, глюки, например, мерцание грида, если добавляешь bmp в ячейку грида (могу путать DbGridEh с Rx библиотекой)... И вообще не идеальный компонент, в своем виде. Хочется сделать такой же, но свой, и доработать... Что лишний раз доказывает, что свое, родное (пусть иногда и кривое) не заменить чужим :) Дело вкуса.
jiny (2005-10-06 21:30:00) [4]в принципе можно и DbGridEh установить - более удобен в настройках, нет проблем с "колесиком" и куча всяких дополнительных наворотов.
sniknik (2005-10-06 21:15:00) [5]кстати если будеш это как компанент оформлять не забудь еще проверку на то, что у грида вообще источник есть (DataSource)
здесь > with TDBGrid(Sender).DataSource.DataSet do
а можно и перестраховаться и еще у него датасет проверить ;)
Michael5 (2005-10-06 21:15:00) [6]Спасибо большое :)
Стану в чем-нибудь мастером - тоже буду помогать людям...
Michael5 (2005-10-06 21:15:00) [7][5]
Ага, учту!
sniknik (2005-10-06 21:10:00) [8]угу, 5 строк дописать. тяжко тебе придется... ;)
type
TMyDBGrid = class(TDBGrid);
TForm1 = class(TForm)
...
private
procedure GrigMouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
...
end;
procedure TForm1.GrigMouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
with TDBGrid(Sender).DataSource.DataSet do
if Active then begin
if WheelDelta > 10 then Prior;
if WheelDelta < -10 then Next;
Handled:= true;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
TMyDBGrid(DBGrid1).OnMouseWheel:= GrigMouseWheel;
end;
кстати там не забыли, там просто так оригинально обрабатывают.
Michael5 (2005-10-06 21:01:00) [9]Ничего себе! :)
Стало быть, свой компонент делать...
Loginov Dmitry (2005-10-06 20:59:00) [10]Мышка глючит с DBGrid (DBGrid - наследник своего родителя:), и в нем просто забыли обработать перемотку колесиком. Смирись :)
Michael5 (2005-10-06 20:53:00) [11]Подскажите, как заставить его проматываться мышью...