Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.01.29;
Скачать: [xml.tar.bz2];

Вниз

Как прокручивать TGrid колесом мыши?   Найти похожие ветки 

 
Vi0let   (2003-12-30 14:15) [0]

А то, при движении колеса, меняется активная строка только в видимом списке грида, а сам список не прокручивается...


 
Vi0let   (2003-12-30 14:19) [1]

... TDBGrid


 
asp   (2003-12-30 14:20) [2]

Либо воспользоваться RxDBGrid, либо наследовать от стандартного свой, с обработкой MouseWheel.


 
Vi0let   (2003-12-30 14:22) [3]

как реализовать обработку MouseWheel ?


 
Vemer   (2003-12-30 14:23) [4]

Либо написать общий обработчик колеса, который нажатия клавиш вверх/вниз имитирует, образец вроде на сайте АП есть.
У меня работает.


 
asp   (2003-12-30 14:29) [5]

Переопределяй от TWinControl"а в protected
function DoMouseWheel(Shift: TShiftState; WheelDelta: Integer;
MousePos: TPoint): Boolean; dynamic;
function DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean; dynamic;
function DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean; dynamic;


 
sniknik   (2003-12-30 14:57) [6]

TMyDBGrid = class(TDBGrid)
procedure WMMouseWheel(var Msg: TWMMouseWheel); message WM_MOUSEWHEEL;
end;

procedure TMyDBGrid.WMMouseWheel(var Msg: TWMMouseWheel);
begin
if DataSource.DataSet.Active then begin
if Msg.WheelDelta > 10 then DataSource.DataSet.Prior;
if Msg.WheelDelta < -10 then DataSource.DataSet.Next;
end;
end;

естественно дальше нужно TMyDBGrid вместо TDBGrid использовать.


 
Vi0let   (2003-12-30 19:21) [7]

интересно, попробую ...


 
dimm22   (2003-12-30 19:38) [8]

DBGridEh из библиотеки EhLib. Много чего полезного умеет делать.


 
Vi0let   (2004-01-01 14:56) [9]

sniknik
> естественно дальше нужно TMyDBGrid вместо TDBGrid использовать
я так понимаю, в этом случаем у меня 2 варианта:
1) создавать объект TMyDBGrid в рантайме, и все значения свойств кодом задавать
2) создавать компонент наследующий грид с новым свойством
я правильно понял?
а нет ли менее хлопотного варианта?


 
sniknik   (2004-01-01 18:58) [10]

....
А ивано-франковец ему отвечает: ну, так это, короче, не проблема.
Это вы неделю не покурите, и она сама по себе рассосется.
Тут все растаманы(наркоманы) как зашумели: та, шо ты гонишь! Прямо как психиатр, в натуре. Это же как можно, целую неделю не курить, это же вобще умом поехать можно. А ивано-франковец им говорит: тогда давайте другой способ, менеее напряжный.
.... ;о))
© сага и мыше и наркомане.

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

type
TMyDBGrid = class(TDBGrid);

TForm1 = class(TForm)
.....
procedure FormCreate(Sender: TObject);
private
procedure MyMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
TMyDBGrid(DBGrid1).OnMouseWheel:= MyMouseWheel;
end;

procedure TForm1.MyMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
if (Sender is TDBGrid) and TDBGrid(Sender).DataSource.DataSet.Active then
begin
if WheelDelta > 10 then TDBGrid(Sender).DataSource.DataSet.Prior;
if WheelDelta < -10 then TDBGrid(Sender).DataSource.DataSet.Next;
Handled:= true;
end;
end;


 
Vi0let   (2004-01-03 11:13) [11]

благодарю, всё получилось



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

Форум: "Базы";
Текущий архив: 2004.01.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.007 c
1-93435
IronHawk
2004-01-16 15:13
2004.01.29
Приветствую Мастеров! Как сделать проверку, что в строке ДАТА?


1-93434
Bers01
2004-01-16 15:17
2004.01.29
Создание компонентов run-time


14-93691
Дремучий
2004-01-06 14:46
2004.01.29
Администрирование инет- кафе


1-93534
Graff
2004-01-18 00:42
2004.01.29
Определить имя компонента по его индексу.


1-93581
Marat Zigangirov
2004-01-17 00:32
2004.01.29
Окно сообщения Exception скрыто за главным окном





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский