1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Скролинг в Dbgrid

Тема в разделе "Delphi - программирование", создана пользователем dzhserv, 25 дек 2006.

  1. dzhserv

    dzhserv Гость

    Репутация:
    0
    Подскажите пожалуйста!
    Как можно сделать скролинг в стандартном DBGrid-е :P
     
  2. Barmutik

    Barmutik Гость

    Репутация:
    0
    Скролинг в DBGrid присутствует стандартно.. чем он Вас не устраивает?
     
  3. dzhserv

    dzhserv Гость

    Репутация:
    0
    он не работает

    вернее он не прокручивает когда много записей
     
  4. Barmutik

    Barmutik Гость

    Репутация:
    0
    Он прокручивает .. только имеет три состояния всего... нчало.. середина и конец прокрутки...

    Такая проблема есть.. используйте другой компонент грида ..

    Надеюсь я Вас правильно понял ...
     
  5. DZX

    DZX Гость

    Репутация:
    0
    В delphi 10 этот баг исправлен.
     
  6. acorn

    acorn PHP Developer

    Репутация:
    0
    Регистрация:
    29 авг 2004
    Сообщения:
    585
    Симпатии:
    3
    Я обычно сам загоняю таблицу в StringGrid - там такого бага нету.
     
  7. Barmutik

    Barmutik Гость

    Репутация:
    0
    Хороший вариант для 100.000 записей в курсоре...
     
  8. dzhserv

    dzhserv Гость

    Репутация:
    0
    А если их больше 100.000?

    я уже много разных компонентов Grid -ов перепробовал, но ни у одного этой функции нет.
    (Для D-7)
     
  9. DZX

    DZX Гость

    Репутация:
    0
    Если их даже и 100.000, то скорость работы такой программы будет ужасно медленная. Не надо придумывать колесо. И переходите на 10 версию, не понимаю упорства фанатов 7-ой
    версии, да хороша, но всеравно время идет и баги 7-ой версии Борланд править не
    собирается. Больше вероятнось , что он исправит баги 10-Й :)
     
  10. dzhserv

    dzhserv Гость

    Репутация:
    0
    Это совершенно верно, в 7-ке удобный интерфейс...
     
  11. Barmutik

    Barmutik Гость

    Репутация:
    0
    Для: DZX

    7-ка общепризнанная самая удачная версия Дельфи.. а 2006 это в общем-то жалкие попытки Борлянда вскочить в вагончик .NET технологии...

    Так что смысле переходить на версию выше 7-ой нет никакого...

    А насчёт 100.000 записей я вообще-то имел ввиду в кавычках.... но как-то никто и не понял этого...

    Если Вам надо свой грид .. используйте виртуальные контролы и в нём уже отображайте сами содержимое курсора...
     
  12. zubr

    zubr Гость

    Репутация:
    0
    Вообще то вопрос решается достаточно просто, вот один из вариантов:
    Код:
    unit Unit1;
    
    interface
    
    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, DB, Grids, DBGrids, DBTables;
    
    type
    TForm1 = class(TForm)
    Table1: TTable;
    DBGrid1: TDBGrid;
    DataSource1: TDataSource;
    private
    { Private declarations }
    procedure MouseWheelHandler(var Message: TMessage);override;
    public
    { Public declarations }
    end;
    
    var
    Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.MouseWheelHandler(var Message: TMessage);
    var
    p:TPoint;
    begin
    GetCursorPos(p);
    If WindowFromPoint(p)=DBGrid1.Handle then
    begin
    If Message.WParam<0 then
    DBGrid1.Perform(WM_VSCROLL, SB_LINEDOWN, 0)
    else
    DBGrid1.Perform(WM_VSCROLL, SB_LINEUP, 0);
    end;
    end;
    
    end.
    Собирал в Delphi6.
     
  13. dzhserv

    dzhserv Гость

    Репутация:
    0
    Для: zubr

    Все работает...
    Большое спасибо за помощь со скролингом в DBGrid-е :( :lol:


    Я проставляюсь пивом по URL Скролинг в Dbgrid
     
  14. zubr

    zubr Гость

    Репутация:
    0
    Таким же образом можно сделать и горизонтальный скролл. Определяем положение курсора - если в полосе горизонтальной прокрутки посылаем WM_HSCROLL. Гораздо удобнее, чем мышью щелкать, имхо.
     
Загрузка...

Поделиться этой страницей