Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 06:42 29.06.24 
Компютри и Интернет
   >> Delphi
Всички теми Следваща тема *Кратък преглед

Тема Scroll в/у DBGrid  
Автор VladoVasilev (непознат )
Публикувано30.06.04 14:07



Как мога да прихвана скролирането с mouse-a на DBGrid???



Тема Re: Scroll в/у DBGridнови [re: VladoVasilev]  
Автор c1ick (once)
Публикувано30.06.04 15:49



Най-лесно:
пускаш TAppEvents (в Delphi 7) или TApplication (в по-ранните делфита, не помня кои точно) върху формата и в OnMessage пишеш:

procedure TfrmMain.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
If (Msg.message = WM_MOUSEWHEEL) and
(ActiveControl.Name = 'DBGrid1') then begin
If Msg.wParam < 0 then
TDBGrid(ActiveControl).Perform(WM_VSCROLL, SB_LINEDOWN, 0)
else
TDBGrid(ActiveControl).Perform(WM_VSCROLL, SB_LINEUP, 0);
end;
Handled := False;
end;

Ако тоя вид скролл не те устройва, пиши Perform(WM_KEYDOWN, VK_DOWN, 0) за надолу и Perform(WM_KEYDOWN, VK_UP, 0) за нагоре.



Тема Re: Scroll в/у DBGridнови [re: VladoVasilev]  
Автор PhantomASМодератор ()
Публикувано30.06.04 23:17



Кажи какво точно целиш - в другия пост имаше страннен за мен код - най-малкото, че никога не съм имал проблеми с мишката - даже и когато грид-а не е активен. Мисля, че пробема по скоро идва от драйвера на мишката - A4Tech ако не с много добри мишки - поне много здрави драйвери правят в този контекст.
А ако искаш да прихващаш някакво движение и възоснова на това да манипулираш данни - вътре или извън грида - мисля, че не си се насочил в правилната посока има други начини да се постигне това (пример - грид с фиксирани колони или общи суми и прочие).

---


Тема Re: Scroll в/у DBGridнови [re: VladoVasilev]  
Автор SDR (TaskMaster)
Публикувано01.07.04 09:37



аз пак ползвам това:


unit c_DBGridEx;

interface

uses
SysUtils, Classes, Controls, Grids, DBGrids,messages,windows,DB;

type
TDBGridEx = class(TDBGrid)
protected
procedure mw (var m:TMessage);message WM_MOUSEWHEEL;
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents('SDR''s', [TDBGridEx]);
end;

{ TDBGridEx }

procedure TDBGridEx.mw(var m: TMessage);
var
zDelta:Smallint;
begin
// EditorMode
// MessageBox(0,'scrol?',nil,0);
zDelta:=HIWORD(m.wParam);
if DataSource.DataSet.State in [dsEdit, dsInsert] then DataSource.DataSet.Post;
if DataSource.DataSet.State=dsBrowse then begin
if zDelta<0 then begin
if not DataSource.DataSet.Eof then DataSource.DataSet.Next;
end else begin
if not DataSource.DataSet.Bof then DataSource.DataSet.Prior;
end;
end;
end;

end.


------------------------------
I got a COMPILER, and I'm not afraid to use it!


Всички темиСледваща тема*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.