Главная страница
    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.49 MB
Время: 0.052 c
2-1192076970
zzzz
2007-10-11 08:29
2007.11.04
Узнать код символа


9-1161945837
Lamer_2006
2006-10-27 14:43
2007.11.04
Шо не так?


15-1191319495
Azize
2007-10-02 14:04
2007.11.04
Посветуйте литературу


15-1190728528
начинающий
2007-09-25 17:55
2007.11.04
Vista на С:, ХР на D:


15-1190972708
Polevi
2007-09-28 13:45
2007.11.04
ftp.exe





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский