Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.04;
Скачать: CL | DM;

Вниз

DBGrid   Найти похожие ветки 

 
Sw   (2007-06-22 07:25) [0]

Подскажите, пожалуйста, можно ли в DBGrid отключить полосу прокрутки?


 
Johnmen ©   (2007-06-22 09:10) [1]

можно.


 
vvvvvv   (2007-06-22 13:02) [2]

Для этого необходимо переопределить метод Paint. Внутри метода Paint Вы должны вызвать API процедуру SetScrollRange для установки минимального и максимального значений скроллирования в ноль (тем самым запретив скроллбар), а затем вызвать inherited. Следующий код, это unit содержащий новый компонент под названием TNoScrollBarDBGrid, который делает это.

type
 TNoScrollBarDBGrid = class(TDBGrid)
 protected
   procedure Paint; override;
end;

procedure register;

implementation

procedure register;
begin
 RegisterComponents("Samples", [TNoScrollBarDBGrid]);
end;

{ TNoScrollBarDBGrid }

procedure TNoScrollBarDBGrid.Paint;
begin
 SetScrollRange(Handle, SB_VERT, 0, 0, false);
 inherited;
end;


 
Правильный Вася   (2007-06-22 14:07) [3]

зачем мудрить, если можно вызвать после создания грида


 
Johnmen ©   (2007-06-22 14:45) [4]


> можно вызвать после создания грида

А смысл?


 
Ulugbek   (2007-06-24 14:45) [5]

Пробовал так  не помогает
procedure TForm1.FormShow(Sender: TObject);
begin
    ShowScrollBar(DBGrid1.Handle, SB_HORZ, False);
    ShowScrollBar(DBGrid1.Handle, SB_VERT, False);
end;


 
Johnmen ©   (2007-06-24 14:54) [6]


> Пробовал так  не помогает

А что, должно было помочь?


 
Desdechado ©   (2007-06-25 11:13) [7]

Ulugbek   (24.06.07 14:45) [5]
Вот так работает, только это нужно делать ПОСЛЕ открытия датасета:
     EnableScrollBar( gridAbTerms.Handle, SB_VERT, ESB_DISABLE_BOTH );
     ShowScrollBar( gridAbTerms.Handle, SB_VERT, False );


 
Johnmen ©   (2007-06-25 13:50) [8]


> Desdechado ©   (25.06.07 11:13) [7]

Это работает до первой попытки сместить указатель в НД.


 
Desdechado ©   (2007-06-25 13:58) [9]

Johnmen ©   (25.06.07 13:50) [8]
За полную достоверность не ручаюсь, но в D7 + XP работает. В качестве датасета - CDS.
Ты на чем пробовал?


 
Johnmen ©   (2007-06-25 14:09) [10]


> Desdechado ©   (25.06.07 13:58) [9]

Сейчас попробую. На чём нибудь....:)


 
Johnmen ©   (2007-06-25 14:15) [11]

Попробовал...
Зачем - не знаю, ведь и так понятно, что при перерисовке грида после смещения указателя (например) скроллбар будет отрисован заново.
Ну без бегунка - это понятно (EnableScrollBar...).


 
Ulugbek   (2007-06-26 13:20) [12]

У меня тоже не работает. CDS.afteopen ставил:(


 
Johnmen ©   (2007-06-26 13:27) [13]

В общем, я к тому, что способ единственный - перекрыть отрисовку. Пример чего нетрудно найти в инете или посмотреть, что сказал "добрый человек" в [2]...


 
Desdechado ©   (2007-06-26 14:05) [14]

Johnmen ©
Вообще-то у автора "отключить полосу прокрутки", а не спрятать.

PS я не понимаю, зачем оно нужно


 
Johnmen ©   (2007-06-26 14:12) [15]


> Desdechado ©   (26.06.07 14:05) [14]
> Вообще-то у автора "отключить полосу прокрутки", а не спрятать.

Не ведуют они, что хотят...
Да и телепатор на что?


 
Игорь Шевченко ©   (2007-06-27 10:44) [16]


> PS я не понимаю, зачем оно нужно


Я тебе могу популярно объяснить - чтобы скрыть огрехи дизайна приложения :)


 
atruhin ©   (2007-06-27 14:22) [17]

> Я тебе могу популярно объяснить - чтобы скрыть огрехи дизайна
> приложения :)

Ну почему обязательно так? Например мы пишем ПО для сенсорных мониторов, там стандартная
полоса прокрутки как 5 колесо у телеги.


 
clickmaker ©   (2007-06-27 14:37) [18]


> Это работает до первой попытки сместить указатель в НД

а можно в AfterScroll ее опять прихлопнуть :)


 
Правильный Вася   (2007-06-27 15:23) [19]


> там стандартнаяполоса прокрутки как 5 колесо у телеги.

а нестандартная - как 9-е?


 
atruhin ©   (2007-06-27 15:30) [20]

> а нестандартная - как 9-е?

Примерно так.


 
Игорь Шевченко ©   (2007-06-27 15:43) [21]


> Например мы пишем ПО для сенсорных мониторов, там стандартная
> полоса прокрутки как 5 колесо у телеги


Ну и нафига там стандартный DBGrid ?


 
atruhin ©   (2007-06-27 19:58) [22]

> Ну и нафига там стандартный DBGrid ?

Ну иногда удобно для отображения табличных данных.
Но вообще, ладно, пустой это разговор.


 
Sw   (2007-06-28 06:09) [23]

стала использовать DBGridEh из библ EhLib
со стандартным так у меня ничего и не вышло, при перемещении по НД огрехи дизайна промелькивают Глаз успевает увидеть промелькнувшую полосу прокрутки



Страницы: 1 вся ветка

Текущий архив: 2007.11.04;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.018 c
15-1191493613
Jeer
2007-10-04 14:26
2007.11.04
С праздником !


2-1192163293
Stud
2007-10-12 08:28
2007.11.04
Где найти алгоритм перебора?


15-1191487519
Beginner3
2007-10-04 12:45
2007.11.04
Комплексные числа


2-1192106025
Ega23
2007-10-11 16:33
2007.11.04
Поясните про TTreeNode.StateIndex


2-1192272777
apic
2007-10-13 14:52
2007.11.04
TListView