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

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

DBGrid [D6, IB6.x]


dimushkin ©   (2002-08-14 13:23:00) 

может кто подскажет как в этом компоненте перемещаться позаписям в таблице с помощью колеса?


Lusha   (2002-08-15 10:17:00) [1]

Беру свои слова обратно... Это не кривизна VCL... Это я тормоз... :)

А еще можно вот так...
...
Handled := True;
with ScreenToClient(MousePos), TDBGrid(Sender) do
if (x < Left) or (x > Left + Width) or (y < Top) or (y > Top + Height) then Exit;
TMyDBGrid(Sender).DataSource.DataSet.Prior;
...


Lusha   (2002-08-15 10:04:00) [2]

А что если крутить на форме, тоже прокатывает? Если да, то это кривизна VCL...


Ученик   (2002-08-15 09:58:00) [3]

>Lusha © (15.08.02 09:56)
procedure TForm1.FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin

end;


with TProtectedDBGrid(DBGrid1) do begin
OnMouseWheelUp := FormMouseWheelUp;
OnMouseWheelDown := FormMouseWheelDown
end


Lusha   (2002-08-15 09:56:00) [4]

>Ученик © (15.08.02 09:41)
А вот это совсем не обязательно... Какому компоненту (помимо TDBGrid) Вы собираетесь назначить этот обработчик? :)

P.S. Никогда не стоит выходить за пределы здравого смысла... Тем более когда занимаешься программированием...


Ученик   (2002-08-15 09:41:00) [5]

>Lusha © (15.08.02 09:33)
Ну тогда уж
if Sender is TDBGrid then
TDBGrid(Sender).DataSource.DataSet.MoveBy(...) :)))


Lusha   (2002-08-15 09:33:00) [6]

>Ученик © (15.08.02 09:12)
Пять с минусом....

Гридов и наборов данных может быть много... А соответствующий обработчик желательно иметь один на всех...

Так что писать лучше...
TDBGrid(DBGrid1).DataSource.DataSet.Prior (ну или Last в зависимости от обработчика)


Ученик   (2002-08-15 09:12:00) [7]

procedure TForm1.GridMouseWheelDown(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
Handled := True;
Table1.MoveBy(1)
end;

procedure TForm1.GridMouseWheelUp(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
Handled := True;
Table1.MoveBy(-1)
end;

type
TProtectedDBGrid = class(TDBGrid);

procedure TForm1.FormCreate(Sender: TObject);
begin
with TProtectedDBGrid(DBGrid1) do begin
OnMouseWheelUp := GridMouseWheelUp;
OnMouseWheelDown := GridMouseWheelDown
end
end;


Alexandr   (2002-08-15 08:29:00) [8]

вот в dbgrideh такое есть


Lusha   (2002-08-14 14:20:00) [9]

>dimushkin © (14.08.02 13:58)
У его (TDBGrid) предков. Причем они protected так, что можно к ним "достучаться" и "попросить" их работать так, как Вам надо...





dimushkin   (2002-08-14 13:58:00) [10]

OnMouseWheelUp, OnMouseWheelDown ?

а где они?


Lusha   (2002-08-14 13:47:00) [11]

Смотрите обработчики OnMouseWheelUp, OnMouseWheelDown...


3JIA9I CyKA   (2002-08-14 13:38:00) [12]

Не советую "крутить" конкретно в DBGrid - галюны гарантированы.


Johnmen   (2002-08-14 13:37:00) [13]

>но указатель на запись не перемещается вместе с ним

Так это совершенно нормально...:))))))


LordOfSilence   (2002-08-14 13:34:00) [14]

На всякий случай - аналог TDBGrid из комплекта
LMD прокручивает даже без установки родных драйверов.
Да и не только он.


dimushkin   (2002-08-14 13:31:00) [15]

если бы все было так просто :)
я наверное не правильно выразился
колесо у меня крутится нармально и без драйвера
но указатель на запись не перемещается вместе с ним и соответственно не получается фильтровать по связанные с этой таблицей другие таблицы


Mike Kouzmine   (2002-08-14 13:27:00) [16]

Крутить колесо :). Поставь драйвер, если не прокручивает.


Наверх

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