![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]Крутить колесо :). Поставь драйвер, если не прокручивает.