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

Скока лазил - не нашёл... пришёл к выводу, что невозможно.
Лучшие ответы (1)
AdAgent
Объявления
24.08.2009, 14:52     DBGrid - прокрутка scroll
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2009, 14:52     DBGrid - прокрутка scroll
Посмотрите здесь:

C++ Builder БД Почему исчезла прокрутка в TDBGrid?
C++ Builder БД DBGrid
C++ Builder БД [C++ builder XE] DBGrid. Удаление/добавление/изменение БД mysql через DBGrid
C++ Builder БД DBGrid
C++ Builder БД DBGrid
Sasha
Форумчанин
4237 / 1926 / 85
Регистрация: 05.06.2008
Сообщений: 5,859
Записей в блоге: 3
25.08.2009, 10:35     DBGrid - прокрутка scroll   #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, 10:42     DBGrid - прокрутка scroll   #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, 16:01  [ТС]     DBGrid - прокрутка scroll   #4
Это в какое событие записать???
Sasha
Форумчанин
4237 / 1926 / 85
Регистрация: 05.06.2008
Сообщений: 5,859
Записей в блоге: 3
25.08.2009, 16:53     DBGrid - прокрутка scroll   #5
Ты его должен сам создать
AdAgent
Объявления
25.08.2009, 16:53     DBGrid - прокрутка scroll
4aynik
Форумчанин
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
26.08.2009, 10:06  [ТС]     DBGrid - прокрутка scroll   #6
Если бы я ещё это умел...
Sasha
Форумчанин
4237 / 1926 / 85
Регистрация: 05.06.2008
Сообщений: 5,859
Записей в блоге: 3
26.08.2009, 10:24     DBGrid - прокрутка scroll   #7
Цитата Сообщение от 4aynik Посмотреть сообщение
Если бы я ещё это умел...
Зайди к себе на профиль я тебе вчера ссылку сбрасывал
4aynik
Форумчанин
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
26.08.2009, 10:56  [ТС]     DBGrid - прокрутка scroll   #8
Ага видел, пытаюсь сделать.

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

Sasha, по твоему коду в добавлении метода вот так нужно задавать (на рисунке)?
Миниатюры
DBGrid - прокрутка scroll  
Sasha
Форумчанин
4237 / 1926 / 85
Регистрация: 05.06.2008
Сообщений: 5,859
Записей в блоге: 3
26.08.2009, 12:13     DBGrid - прокрутка scroll   #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, 12:09  [ТС]     DBGrid - прокрутка scroll   #10
Билдер заругался и я убрал вот этот кусок

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

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

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

Все разобрался! Работает ))
4aynik
Форумчанин
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
27.08.2009, 18:02  [ТС]     DBGrid - прокрутка scroll   #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, 09:55     DBGrid - прокрутка scroll   #14
Цитата Сообщение от 4aynik Посмотреть сообщение
Это в какое событие записать???
сделай как тут и все будет работать cpp+h.rar
Вложения
Тип файла: rar cpp+h.rar (3.3 Кб, 126 просмотров)
4aynik
Форумчанин
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
28.08.2009, 10:48  [ТС]     DBGrid - прокрутка scroll   #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
Форумчанин
4237 / 1926 / 85
Регистрация: 05.06.2008
Сообщений: 5,859
Записей в блоге: 3
28.08.2009, 11:29     DBGrid - прокрутка scroll   #16
Цитата Сообщение от 4aynik Посмотреть сообщение
Ошибки такие:



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

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

Добавлено через 25 минут
И имя формы желательно
4aynik
Форумчанин
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
28.08.2009, 13:29  [ТС]     DBGrid - прокрутка scroll   #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
Форумчанин
4237 / 1926 / 85
Регистрация: 05.06.2008
Сообщений: 5,859
Записей в блоге: 3
28.08.2009, 15:26     DBGrid - прокрутка scroll   #18
Цитата Сообщение от Sasha Посмотреть сообщение
Покажи как выглядит твой h-фаил с теми ошибками которые ты выложил

Добавлено через 25 минут
И имя формы желательно
Ну вот видна ошибка, вместо MainForm напиши своё имя формы оно у тебя Form1, а в h-файле всё правильно
4aynik
Форумчанин
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
31.08.2009, 10:51  [ТС]     DBGrid - прокрутка scroll   #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)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.08.2009, 11:10     DBGrid - прокрутка scroll
Еще ссылки по теме:

C++ Builder БД DBGrid
C++ Builder БД DBGRID
C++ Builder БД Прокрутка DBGrid-а колесиком мыши
Sasha
Форумчанин
4237 / 1926 / 85
Регистрация: 05.06.2008
Сообщений: 5,859
Записей в блоге: 3
31.08.2009, 11: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, 11:10     DBGrid - прокрутка scroll
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Опции темы

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