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

Вниз

в DBGrid не работает мышинный скроллинг   Найти похожие ветки 

 
Lisa   (2004-02-04 13:55) [0]

Проблема такая: скроллировать можно только в пределах видимых строчек, выше или ниже он двигаться не позволяет. Как это можно решить?


 
Вованчик   (2004-02-04 14:09) [1]

Грид из EHLib или переопределять событие от колесика


 
Lisa   (2004-02-04 14:14) [2]

а что это за библиотека?


 
Deniz   (2004-02-04 14:14) [3]

... или поставить дрова от мыши :)


 
Вованчик   (2004-02-04 14:19) [4]

http://www.ehlib.com


 
sniknik   (2004-02-04 14:29) [5]

type
TMyDBGrid = class(TDBGrid);

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

procedure TForm1.FormCreate(Sender: TObject);
begin
TMyDBGrid(DBGrid1).OnMouseWheel:= GrigMouseWheel;
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;

и вся обработка, EHLib не нужен.


 
paul_k   (2004-02-04 16:04) [6]

2 sniknik
Спасибо большое
Действительно просто... в смысле использовать ниписанное
А можно прокомментировать почему и как оно работает?


 
sniknik   (2004-02-04 17:41) [7]

определяем свой класс для доступа к private методам/переменным.
пишем обработку события OnMouseWheel: TMouseWheelEvent; (можно хелп посмотреть)
заменяем указатель события в компоненте на наш.
TComponent (от которого грид наследуется это позволяет) свойство
property OnMouseWheel: TMouseWheelEvent read FOnMouseWheel write FOnMouseWheel;
FOnMouseWheel после присвоения уже не nil а указательна нашу процедуру.
а на реальном событии оно вызывается если определено
function TControl.DoMouseWheel(Shift: TShiftState; WheelDelta: Integer;
MousePos: TPoint): Boolean;
var
IsNeg: Boolean;
begin
Result := False;
if Assigned(FOnMouseWheel) then
FOnMouseWheel(Self, Shift, WheelDelta, MousePos, Result);
if not Result then
.....


 
paul_k   (2004-02-05 11:49) [8]

Спасибо большое за комментарий...
теперь бы все это в фак положить, а то вопрос регулярный а ковырять архивы форума через полтора месяца не все догадаются.



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

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

Наверх




Память: 0.46 MB
Время: 0.006 c
14-6228
ZeCChiN
2004-02-10 20:33
2004.03.03
О потрепаться


1-6048
maxXP
2004-02-19 02:04
2004.03.03
Как в ListBox определить количество элементов?


1-6131
Gnusik
2004-02-19 19:05
2004.03.03
Создание ярлыка в Win XP


14-6190
Andreas
2004-02-11 18:29
2004.03.03
Пропали подключения ?


11-6007
BaRToV
2003-06-11 01:36
2004.03.03
Обновление на http://delphikol.narod.ru





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский