Форум программистов, компьютерный форум CyberForum.ru
CyberForum.ru - форум программистов и сисадминов > > > >
Восстановить пароль Регистрация

Ответ Создать новую тему
 
4aynik
Форумчанин
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
24.08.2009, 13:52     DBGrid - прокрутка scroll
  #1
Не подскажите в DBGrid возможна прокрутка по списку с помощью Scroll'a (колеса) мыши?

Скока лазил - не нашёл... пришёл к выводу, что невозможно.
Лучшие ответы (1)
AdAgent
Объявления
24.08.2009, 13:52
Sasha
Форумчанин
4212 / 1901 / 78
Регистрация: 05.06.2008
Сообщений: 5,723
Записей в блоге: 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;
}
FreeWay
Форумчанин
73 / 73 / 3
Регистрация: 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); 
4aynik
Форумчанин
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
25.08.2009, 15:01  [ТС]
  #4
Это в какое событие записать???
Sasha
Форумчанин
4212 / 1901 / 78
Регистрация: 05.06.2008
Сообщений: 5,723
Записей в блоге: 3
25.08.2009, 15:53
  #5
Ты его должен сам создать
4aynik
Форумчанин
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
26.08.2009, 09:06  [ТС]
  #6
Если бы я ещё это умел...
Sasha
Форумчанин
4212 / 1901 / 78
Регистрация: 05.06.2008
Сообщений: 5,723
Записей в блоге: 3
26.08.2009, 09:24
  #7
Цитата Сообщение от 4aynik Посмотреть сообщение
Если бы я ещё это умел...
Зайди к себе на профиль я тебе вчера ссылку сбрасывал
4aynik
Форумчанин
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
26.08.2009, 09:56  [ТС]
  #8
Ага видел, пытаюсь сделать.

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

Sasha, по твоему коду в добавлении метода вот так нужно задавать (на рисунке)?
Миниатюры
DBGrid - прокрутка scroll  
Sasha
Форумчанин
4212 / 1901 / 78
Регистрация: 05.06.2008
Сообщений: 5,723
Записей в блоге: 3
26.08.2009, 11:13
  #9
Показываю на своей функции
1.Убери флажок с const
2.Имя метода OnApplicationMessage
3.Аргументы TMsg & Msg, bool & Handled - это то, что в скобках
4.тип функции не bool, short,а void
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'ах моих не прокручивается колесом мыши список...
Sasha
Форумчанин
4212 / 1901 / 78
Регистрация: 05.06.2008
Сообщений: 5,723
Записей в блоге: 3
27.08.2009, 12:53
  #11
Покажи ошибку на что он заругался?

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

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

Все разобрался! Работает ))
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-я там же...
FreeWay
Форумчанин
73 / 73 / 3
Регистрация: 17.12.2007
Сообщений: 574
28.08.2009, 08:55
  #14
Цитата Сообщение от 4aynik Посмотреть сообщение
Это в какое событие записать???
сделай как тут и все будет работать cpp+h.rar
Вложения
Тип файла: rar cpp+h.rar (3.3 Кб, 123 просмотров)
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;
Sasha
Форумчанин
4212 / 1901 / 78
Регистрация: 05.06.2008
Сообщений: 5,723
Записей в блоге: 3
28.08.2009, 10:29
  #16
Цитата Сообщение от 4aynik Посмотреть сообщение
Ошибки такие:



говорит 1-я ошибка в этой строке: __fastcall TMainForm::TMainForm(TComponent* Owner)

2-я там же...
Покажи как выглядит твой h-фаил с теми ошибками которые ты выложил

Добавлено через 25 минут
И имя формы желательно
4aynik
Форумчанин
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
28.08.2009, 12:29  [ТС]
  #17
Вот так выглядит h-файл:

Код 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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
//---------------------------------------------------------------------------
 
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ADODB.hpp>
#include <DB.hpp>
#include <DBGrids.hpp>
#include <ExtCtrls.hpp>
#include <Grids.hpp>
#include <Menus.hpp>
#include <DBTables.hpp>
#include <ComCtrls.hpp>
#include <DBCtrls.hpp>
#include <QRCtrls.hpp>
#include <QuickRpt.hpp>
#include <Graphics.hpp>
#include <jpeg.hpp>
#include <Mask.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
        TDataSource *DSIzdeliya;
        TDBGrid *DBGrid1;
        TADOConnection *ADOConnection1;
        TADOTable *TIzdeliya1;
        TGroupBox *GroupBox1;
        TButton *Button1;
        TButton *Button2;
        TButton *Button3;
        TButton *Button4;
        TButton *Button5;
        TEdit *Edit1;
        TGroupBox *GroupBox2;
        TLabel *Label1;
        TADOQuery *QCreate;
        TPanel *Panel1;
        TDataSource *DSMash;
        TADOTable *TMash;
        TButton *Button11;
        TPanel *Panel4;
        TQuickRep *QuickRep1;
        TQRLabel *QRLabel6;
        TQRLabel *QRLabel7;
        TQRLabel *QRLabel8;
        TQRLabel *QRLabel9;
        TQRLabel *QRLabel10;
        TQRBand *DetailBand1;
        TQRBand *ColumnHeaderBand1;
        TQRDBText *QRDBText1;
        TQRDBText *QRDBText2;
        TQRDBText *QRDBText3;
        TQRDBText *QRDBText4;
        TQRDBText *QRDBText5;
        TQRLabel *QRLabel1;
        TLabel *Label3;
        TQRShape *QRShape9;
        TQRLabel *QRLabel2;
        TQRDBText *QRDBText6;
        TQRShape *QRShape1;
        TQRShape *QRShape2;
        TQRShape *QRShape3;
        TQRShape *QRShape4;
        TQRShape *QRShape5;
        TADOTable *TSpisok;
        TADOTable *TTemp;
        TQRShape *QRShape7;
        TQRShape *QRShape8;
        TQRShape *QRShape10;
        TQRShape *QRShape11;
        TQRShape *QRShape12;
        TQRShape *QRShape13;
        TPanel *Panel2;
        TLabel *Label4;
        TDBGrid *DBGrid2;
        TGroupBox *GroupBox4;
        TLabel *Label6;
        TLabel *Label7;
        TLabel *Label8;
        TLabel *Label10;
        TLabel *Label5;
        TLabel *Label9;
        TLabel *Label13;
        TLabel *Label14;
        TLabel *Label15;
        TLabel *Label16;
        TEdit *EOTMET;
        TEdit *EPRIM;
        TEdit *EZAVN;
        TComboBox *ENCH;
        TComboBox *ENAIM;
        TButton *Button7;
        TButton *Button6;
        TButton *Button8;
        TButton *Button12;
        TButton *Button14;
        TButton *Button15;
        TDBNavigator *DBNavigator1;
        TButton *Button13;
        TButton *Button16;
        TPanel *Panel3;
        TImage *Image1;
        TGroupBox *GroupBox3;
        TLabel *Label11;
        TLabel *Label12;
        TLabel *Label2;
        TButton *Button10;
        TButton *Button9;
        TEdit *Edit2;
        TEdit *Edit3;
        TCheckBox *CheckBox1;
        TADOQuery *QSearch;
        TButton *Button17;
        TButton *Button18;
        TGroupBox *GroupBox5;
        TButton *Button19;
        TGroupBox *GroupBox6;
        TButton *Button20;
        TButton *Button21;
        TButton *Button22;
        TButton *Button23;
        TButton *Button24;
        TQRShape *QRShape6;
        TQRSysData *QRSysData1;
        TGroupBox *GroupBox8;
        TButton *Button25;
        TADOQuery *TIzdeliya;
        TLabel *Label17;
        TEdit *Edit4;
        TButton *Button26;
        TGroupBox *GroupBox7;
        TLabel *Label18;
        TLabel *Label19;
        TDateTimePicker *DateTimePicker1;
        TTimer *Timer1;
        TLabel *Label20;
        TLabel *Label21;
        TLabel *Label22;
        TLabel *Label23;
        TEdit *Edit5;
        TButton *Button27;
        TLabel *Label24;
        TButton *Button28;
        TGroupBox *GroupBox9;
        TRadioButton *RadioButton1;
        TRadioButton *RadioButton2;
        TRadioButton *RadioButton3;
        TRadioButton *RadioButton4;
        TRadioButton *RadioButton5;
        TButton *Button29;
//        void __fastcall N2Click(TObject *Sender);
        void __fastcall Button1Click(TObject *Sender);
        void __fastcall Button3Click(TObject *Sender);
        void __fastcall Button5Click(TObject *Sender);
        void __fastcall Button2Click(TObject *Sender);
        void __fastcall Button4Click(TObject *Sender);
//        void __fastcall Button6Click(TObject *Sender);
//        void __fastcall GroupBox4Click(TObject *Sender);
        void __fastcall Button7Click(TObject *Sender);
        void __fastcall Button6Click(TObject *Sender);
        void __fastcall Button8Click(TObject *Sender);
        void __fastcall Button9Click(TObject *Sender);
        void __fastcall Button10Click(TObject *Sender);
        void __fastcall CheckBox1Click(TObject *Sender);
        void __fastcall Button11Click(TObject *Sender);
        void __fastcall Button12Click(TObject *Sender);
        void __fastcall Button13Click(TObject *Sender);
        void __fastcall Button14Click(TObject *Sender);
        void __fastcall Button15Click(TObject *Sender);
        void __fastcall ENCHSelect(TObject *Sender);
        void __fastcall Button16Click(TObject *Sender);
        void __fastcall Button17Click(TObject *Sender);
        void __fastcall Button18Click(TObject *Sender);
        void __fastcall Button20Click(TObject *Sender);
        void __fastcall Button21Click(TObject *Sender);
        void __fastcall Button22Click(TObject *Sender);
        void __fastcall Button23Click(TObject *Sender);
        void __fastcall Button24Click(TObject *Sender);
        void __fastcall Button19Click(TObject *Sender);
        void __fastcall Button25Click(TObject *Sender);
        void __fastcall Button26Click(TObject *Sender);
        void __fastcall Timer1Timer(TObject *Sender);
        void __fastcall Button27Click(TObject *Sender);
        void __fastcall Button28Click(TObject *Sender);
        void __fastcall RadioButton1Click(TObject *Sender);
        void __fastcall RadioButton2Click(TObject *Sender);
        void __fastcall RadioButton3Click(TObject *Sender);
        void __fastcall RadioButton4Click(TObject *Sender);
        void __fastcall RadioButton5Click(TObject *Sender);
        void __fastcall Button29Click(TObject *Sender);
//        void __fastcall Button6Click(TObject *Sender);
//        void __fastcall FormCreate(TObject *Sender);
private:    // User declarations
public:     // User declarations
        __fastcall TForm1(TComponent* Owner);
        void __fastcall OnApplicationMessage(TMsg & Msg, bool & Handled);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
Форма называется Form1
Sasha
Форумчанин
4212 / 1901 / 78
Регистрация: 05.06.2008
Сообщений: 5,723
Записей в блоге: 3
28.08.2009, 14:26
  #18
Цитата Сообщение от Sasha Посмотреть сообщение
Покажи как выглядит твой h-фаил с теми ошибками которые ты выложил

Добавлено через 25 минут
И имя формы желательно
Ну вот видна ошибка, вместо MainForm напиши своё имя формы оно у тебя Form1, а в h-файле всё правильно
4aynik
Форумчанин
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
31.08.2009, 09:51  [ТС]
  #19
Написал...

Код C++
1
2
3
4
5
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
 Application->OnMessage = OnApplicationMessage;
}
Ошибка:
[C++ Error] Unit1.cpp(1051): E2171 Body has already been defined for function '_fastcall TForm1::TForm1(TComponent *)'

На эту строчку ругается:
: TForm(Owner)
Sasha
Форумчанин
4212 / 1901 / 78
Регистрация: 05.06.2008
Сообщений: 5,723
Записей в блоге: 3
31.08.2009, 10:10     DBGrid - прокрутка scroll
  #20
Цитата Сообщение от 4aynik Посмотреть сообщение
Написал...

Код C++
1
2
3
4
5
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
 Application->OnMessage = OnApplicationMessage;
}
Ошибка:
[C++ Error] Unit1.cpp(1051): E2171 Body has already been defined for function '_fastcall TForm1::TForm1(TComponent *)'

На эту строчку ругается:
: TForm(Owner)
Ты конструктор, тоже вручную пишешь чтоли?
Yandex
Объявления
31.08.2009, 10:10
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему

Похожие темы
Тема Раздел Ответов Автор Дата
C++ Builder БД Прокрутка DBGrid-а колесиком мыши
Добрый вечер!!! Столкнулся с такой проблемой, на форме имеется DBGrid в нем отображается только 4 строки из таблицы БД, а ней 136 строк (это не столь важно), подскажите как настроить DBGrid, чтобы...
C++ Builder и базы данных 5 Within_t 17.05.2014 11:09
C++ Builder БД DBGrid
Вот интересно возможно ли в DBGrid запретить управление стрелочками на клавиатуре?
C++ Builder и базы данных 1 Сsharper 03.06.2013 09:02
C++ Builder БД DBGrid
Ребята такой вопрос Есть числовой столбец допустим Number Как отсортировать в порядке возрастания не через ADOQuery (Через ADOTable)?
C++ Builder и базы данных 1 Сsharper 02.06.2013 11:16
C++ Builder БД Плавная прокрутка данных через Grid (Embarcadero RAD C++ Builder XE3, MySQL5.6, ADO)
Здравствуйте. Есть такой вопрос - каким образом достичь плавной прокрутки данных, отображаемый пользователю? Среда разработки Embarcadero RAD studio xe3 c++ builder. Тип проекта FireMonkey desktop...
C++ Builder и базы данных 0 krnl 11.03.2013 22:36
C++ Builder БД [C++ builder XE] DBGrid. Удаление/добавление/изменение БД mysql через DBGrid
Здравствуйте! Возможно тема заезженная, но не чего путнего не нашел(может так искал!) Нужна помощь в добавлении и изменении данных в таблице БД mysql через DBGrid. На форме есть: ...
C++ Builder и базы данных 17 Infinity3000 02.05.2012 15:06
C++ Builder БД Вычисляемые поля dbgrid по другим полям того же dbgrid'а
Здравствуйте, уважаемые пользователи, программеры и "гуру" форума. Подскажите, пожалуйста, как переписать код, чтобы все работало с умом.. Мой код считает правильно только количество пятерок,...
C++ Builder и базы данных 0 zener 19.03.2012 20:59
C++ Builder БД DBGrid
Можно ли в DBGrid перейменовывать столбцы, задавать их длинну и скрывать некоторые из них?
C++ Builder и базы данных 2 Hovercat 10.06.2010 20:29
C++ Builder БД Почему исчезла прокрутка в TDBGrid?
Уважаемые программеры, может кто-то уже сталкивался с такой проблемой: в TDBGrid исчезла прокрутка (ScrollBar) при запуске проги на одном компе, а когда запускаю эту же прогу с этой же базой данных...
C++ Builder и базы данных 15 alex-v 07.05.2009 12:28
Опции темы

Текущее время: 03:45. Часовой пояс GMT +4.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.