Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

C++ Builder и базы данных

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 74, средняя оценка - 4.84
4aynik
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
#1

DBGrid - прокрутка scroll - C++ Builder БД

24.08.2009, 13:52. Просмотров 9435. Ответов 34
Метки нет (Все метки)

Не подскажите в DBGrid возможна прокрутка по списку с помощью Scroll'a (колеса) мыши?

Скока лазил - не нашёл... пришёл к выводу, что невозможно.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2009, 13:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос DBGrid - прокрутка scroll (C++ Builder БД):

Прокрутка DBGrid-а колесиком мыши - C++ Builder БД
Добрый вечер!!! Столкнулся с такой проблемой, на форме имеется DBGrid в нем отображается только 4 строки из таблицы БД, а ней 136 строк...

[C++ builder XE] DBGrid. Удаление/добавление/изменение БД mysql через DBGrid - C++ Builder БД
Здравствуйте! Возможно тема заезженная, но не чего путнего не нашел(может так искал!) Нужна помощь в добавлении и изменении...

Добавление записи в DBGrid и получение записи в DBGrid Другой формы - C++ Builder БД
К проекту подключена Access .mdb БД. Имеется 2 формы. На обоих формах есть DBGrid. Как сделать, что бы при добавлении записи в таблицу из...

Прокрутка скролбокс - C++ Builder
Пиплы, такая фишка: у меня на заднем фоне скролбокса картинка. Она подогнана под размер видимой области. Я сделал, чтобы по кручению...

Прокрутка ListBox - C++ Builder
Каким образом можно прокрутить итемы в ListBox без скроллбара?

Прокрутка изображения - C++ Builder
Есть большой рисунок *.bmp, кторый по размеру гораздо больше компонента Image. Хочу использовать его для фона с возможность прокрутки. И,...

34
Sasha
4866 / 2341 / 236
Регистрация: 05.06.2008
Сообщений: 7,371
Записей в блоге: 3
25.08.2009, 09:35 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Возможно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
void __fastcall TMainForm::OnApplicationMessage(TMsg & Msg, bool & Handled)
{
   if (Msg.message == WM_MOUSEWHEEL)
     {
       if (dynamic_cast<TDBGrid*>(Screen->ActiveControl))
        {
         short zDelta = HIWORD(Msg.wParam);
           if (zDelta !=0)
            {
              Msg.lParam = 0;
              Msg.message = WM_KEYDOWN;
               if (zDelta >0 )
                 {Msg.wParam = VK_UP;}
                 else
                 {Msg.wParam = VK_DOWN;}
 
       }
 
   }
  }
}
__fastcall TMainForm::TMainForm(TComponent* Owner)
        : TForm(Owner)
{
 Application->OnMessage = OnApplicationMessage;
}
4
FreeWay
81 / 81 / 4
Регистрация: 17.12.2007
Сообщений: 574
25.08.2009, 09:42 #3
или так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class THackDBGrid:public TDBGrid
{__published:
 __property OnMouseWheel;
};
 
 
((THackDBGrid*)DBGrid1)->OnMouseWheel=MainGridWheel;
 
 
void __fastcall TMain::MainGridWheel(TObject *Sender,TShiftState Shift, int WheelDelta,const TPoint &MousePos,bool &Handled)
{
if(WheelDelta>0) DBGrid1->DataSource->DataSet->Prior();
else if(WheelDelta<0) DBGrid1->DataSource->DataSet->Next();
Handled=1;
}
в заголовке:

C++
1
void __fastcall MainGridWheel(TObject *Sender, TShiftState Shift, int WheelDelta,const TPoint &MousePos,bool &Handled);
0
4aynik
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
25.08.2009, 15:01  [ТС] #4
Это в какое событие записать???
0
Sasha
4866 / 2341 / 236
Регистрация: 05.06.2008
Сообщений: 7,371
Записей в блоге: 3
25.08.2009, 15:53 #5
Ты его должен сам создать
0
4aynik
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
26.08.2009, 09:06  [ТС] #6
Если бы я ещё это умел...
0
Sasha
4866 / 2341 / 236
Регистрация: 05.06.2008
Сообщений: 7,371
Записей в блоге: 3
26.08.2009, 09:24 #7
Цитата Сообщение от 4aynik Посмотреть сообщение
Если бы я ещё это умел...
Зайди к себе на профиль я тебе вчера ссылку сбрасывал
0
4aynik
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
26.08.2009, 09:56  [ТС] #8
Ага видел, пытаюсь сделать.

Добавил метод, только по коду FreeWay'я, но сразу заругался сильно билдер.

Sasha, по твоему коду в добавлении метода вот так нужно задавать (на рисунке)?
0
Миниатюры
DBGrid - прокрутка scroll  
Sasha
4866 / 2341 / 236
Регистрация: 05.06.2008
Сообщений: 7,371
Записей в блоге: 3
26.08.2009, 11:13 #9
Показываю на своей функции
1.Убери флажок с const
2.Имя метода OnApplicationMessage
3.Аргументы TMsg & Msg, bool & Handled - это то, что в скобках
4.тип функции не bool, short,а void
1
4aynik
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
27.08.2009, 11:09  [ТС] #10
Билдер заругался и я убрал вот этот кусок

C++
1
2
3
4
5
__fastcall TMainForm::TMainForm(TComponent* Owner)
        : TForm(Owner)
{
 Application->OnMessage = OnApplicationMessage;
}
Скомпилился, но в DBGrid'ах моих не прокручивается колесом мыши список...
0
Sasha
4866 / 2341 / 236
Регистрация: 05.06.2008
Сообщений: 7,371
Записей в блоге: 3
27.08.2009, 12:53 #11
Покажи ошибку на что он заругался?

А если ты убрал этот кусок то конечно оно прокручиватся не будет
0
FeNr1z
3 / 3 / 0
Регистрация: 18.11.2008
Сообщений: 61
27.08.2009, 13:41 #12
А можно поподробнее про создание метода и как оно работает все? )))

Добавлено через 5 минут
Цитата Сообщение от FeNr1z Посмотреть сообщение
А можно поподробнее про создание метода и как оно работает все? )))

Все разобрался! Работает ))
0
4aynik
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
27.08.2009, 17:02  [ТС] #13
Ошибки такие:

[C++ Error] Unit1.cpp(1049): E2090 Qualifier 'TMainForm' is not a class or namespace name

[C++ Error] Unit1.cpp(1049): E2040 Declaration terminated incorrectly
говорит 1-я ошибка в этой строке: __fastcall TMainForm::TMainForm(TComponent* Owner)

2-я там же...
0
FreeWay
81 / 81 / 4
Регистрация: 17.12.2007
Сообщений: 574
28.08.2009, 08:55 #14
Цитата Сообщение от 4aynik Посмотреть сообщение
Это в какое событие записать???
сделай как тут и все будет работать cpp+h.rar
0
Вложения
Тип файла: rar cpp+h.rar (3.3 Кб, 147 просмотров)
4aynik
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
28.08.2009, 09:48  [ТС] #15
FreeWay, А где в коде там конкретно кусок для скролла?

не это?

C++
1
2
3
4
5
6
7
8
9
10
11
12
class THackDBGrid:public TDBGrid
{__published:
 __property OnMouseWheel;
};
 
//---------------------------------------------------------------------------
__fastcall TMain::TMain(TComponent* Owner)
        : TForm(Owner)
{
 
 
((THackDBGrid*)DBGrid1)->OnMouseWheel=MainGridWheel;
0
28.08.2009, 09:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.08.2009, 09:48
Привет! Вот еще темы с ответами:

прокрутка графика - C++ Builder
Народ, может кто знает как мне быть, у меня программа написанна в среде Borland C++ Builder 6. там имеется график (Tchart1), и...

Прокрутка RichEdit - C++ Builder
Добрый день! Как реализовать прокрутку текстового поля RichEdit? Как не пытался, Scroll Bar никак не мог прикрутить к RichEdit

Прокрутка в собственном компоненте - C++ Builder
Создаю свой компонент, аналог ListBox, но не знаю как реализовать прокрутку итемов. Подскажите, пожалуйста, хотя бы теоретическое решение...

Увеличение и прокрутка изображения - C++ Builder
Здравствуйте форумчане. Пол дня ломаю голову над задачей нормально отобразить изображение в компоненте TImage, но без результатно....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru