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

Вниз

ScrollBars в DBGrid - а не убрать бы их?   Найти похожие ветки 

 
Builder ©   (2002-05-13 15:18) [0]

Вопрос прост - как убрать скролбары в ДБГриде.
Мешают они.


 
Дмитрий Баранов   (2002-05-13 15:39) [1]

Теоретически решается модификацией стиля окна исключением флагов WS_HSCROLL и WS_VSCROLL, может быть еще игнорированием WM_SIZE


 
Кулюкин Олег ©   (2002-05-13 15:49) [2]

Ответ тоже не слишком сложен.
См. хелп по АПИ ShowScrollBar.


 
Song ©   (2002-05-13 15:49) [3]

Всё гораздо проще: TStringGrid.ScrollBars


 
Кулюкин Олег ©   (2002-05-13 16:25) [4]

2 Song © (13.05.02 15:49)
В вопросе был ДБГрид, а не TStringGrid.


 
Song ©   (2002-05-13 16:29) [5]

Sorry


 
DenNNis   (2002-05-13 16:46) [6]

В Quantum Express Grid Pro это делается очень легко, там есть свойство ScrollBars, ставите в ssNone - и нет проблем, скролингов не будет.


 
Johnny Smith ©   (2002-05-13 17:49) [7]

TStringGrid(DBGrid1).ScrollBars:=ssNone;
(правда, убирается только горизонтальный скролл-бар)


 
Fellomena   (2002-05-13 18:26) [8]

Всё как всегда просто, если не помогают топор VCL берёмся за скальпель Win32API, что-то типа:

SendMessage(Scroll_Handle, WM_CLOSE, 0, 0);

Т.к. Scroll в Windows понимании является окном, соответственно он имеет Handle, получив который мы можем посылать ему сообщения.


 
LLL   (2002-05-13 22:36) [9]

Где взять Scroll_Handle? И не уверен,
что не элемент окна, как заголовок, к примеру.


 
Song ©   (2002-05-13 22:42) [10]

Надо перекрывать Create Params либо SetWindowLong()


 
Fellomena   (2002-05-14 12:15) [11]

2 LLL (13.05.02 22:36):

Я уверена ;)


 
Дмитрий Баранов   (2002-05-14 12:36) [12]

>> Fellomena
Предлагается открыть WinSight или Spy++ и отыскать хэндлы скроллбаров.


 
Игорь Шевченко ©   (2002-05-14 13:27) [13]

День добрый, Дмитрий Баранов,


> Предлагается открыть WinSight или Spy++ и отыскать хэндлы
> скроллбаров.


Каждый раз, при запуске приложения :-)

С уважением,


 
Дмитрий Баранов   (2002-05-14 13:38) [14]

День добрый, Игорь Шевченко.
Я про то, что вы дочерних окон (т.е. скроллбаров) у DBGrid`а я, например, почему-то не нашел.


 
Игорь Шевченко ©   (2002-05-14 13:41) [15]

Кстати, в СТАНДАРТНОМ DBGrid"е убрать ВЕРТИКАЛЬНЫЙ Scrollbar задача не простая...ибо метод UpdateScrollbar не виртуальный, и вызывается при смене текущей строки в grid"е...

С уважением,


 
Игорь Шевченко ©   (2002-05-14 13:43) [16]

День добрый, Дмитрий Баранов,

открою вам страшную тайну - их там не найти :-)

С уважением,


 
Fellomena   (2002-05-14 13:58) [17]

Sorry, but...
Честно говоря конкретно про DBGrid сказать не могу, но что у TMemo, TRichEdit-a у скролов точно есть дескриптор и эти скролы легко убираются.
Сама пробовала. Думаю, что и DBGrid не исключение 8)


 
Игорь Шевченко ©   (2002-05-14 14:17) [18]

День добрый, Fellomena,

При всем к вам уважении с DBGrid"ом это так просто не получится :-)

С уважением,


 
deleon ©   (2002-05-14 15:56) [19]

Можно сделать так:
бросить исходник DbGrids.pas в директорию проекта и в нем кое-что поправить:

в TCustomDbGrid.Create
написать:

ScrollBars := ssNone;

и закомментировать тело процедуры
procedure TCustomDBGrid.UpdateScrollBar;

хотя некоторые называют это плохим стилем программирования, но иногда он помогает выжить :)))


 
Игорь Шевченко ©   (2002-05-14 16:01) [20]

to deleon ©:

Править исходники есть сакс и мастдай :-)




 
Johnmen ©   (2002-05-14 16:05) [21]

>Игорь Шевченко © (14.05.02 16:01)
>Править исходники есть сакс и мастдай :-)

Обоснуй ! :o)



 
Игорь Шевченко ©   (2002-05-14 16:09) [22]

День добрый, Johnmen ©,

Самый простой пример: наша фирма с пакетами работает. vcl50.bpl будем в двоичном коде править? :-)

С уважением,


 
Lusha ©   (2002-05-14 16:10) [23]

>deleon © (14.05.02 15:56)
Есть еще один вариант... Переопределить функции имеющие в своем теле вызов UpdateScrollBar, а именно: CreateWnd, LinkActive и Scroll... Я думаю, это реализуемо...


 
Johnmen ©   (2002-05-14 16:24) [24]

>Игорь Шевченко © (14.05.02 16:01)
>Править исходники есть сакс и мастдай :-)

Обоснуй ! :o)


 
Игорь Шевченко ©   (2002-05-14 16:27) [25]

to Johnmen ©:

В моем примере исправления просто не будут иметь никакого эффекта :-)


 
deleon ©   (2002-05-14 16:55) [26]

Иногда, путем исправления (грамотного)борландовского исходника, можно получить прекрасный и надежный результат, главное, что этот результат можно получить за максимально короткое время, без написания своих типов и компонент с переопределениями методов. Мое мнение: все методы хороши, если они приводят к желаемому и не глючному результату, так что каждый выбирает, что ему нравится. Вопрос с правкой исходников иногда не актуален, когда правка одного стандартного модуля, тянет за собой необходимость перекомпиляции с ним кучи других, но с DbGrids.pas все просто замечательно (можно такого наворотить) :)))


 
Lusha ©   (2002-05-14 17:01) [27]

>deleon © (14.05.02 16:55)
Есть только одна маленькая загвоздка - если вдруг эти самые полосы прокрутки вновь понадобятся или еще круче, если одновременно потребуются гриды с полосами прокрутки и без оных. Вот тогда будет отнюдь не замечательно, а совсем наоборот... :(


 
deleon ©   (2002-05-14 17:09) [28]

Так для этого не нужно все крушить безоговорочно, а добавлять свои свойства, например, ScrollBars и будет все замечательно, будет свой грид, правда со свойствами не видимыми в OI, ну и располагать их естественно в Public. Я делаю так: назначай директиву условной компиляции, при удалении которой исходник становится стандартным при желании, хотя пока такого не понадобилось, и, главное, DbGrids.pas нужно бросить в папку проекта, чтобы другие проекты жили спокойно :)))


 
Игорь Шевченко ©   (2002-05-14 17:40) [29]

День добрый, deleon ©,

> Так для этого не нужно все крушить безоговорочно, а добавлять
> свои свойства, например, ScrollBars и будет все замечательно,
> будет свой грид


А это и есть свой компонент :-)
И Borland"овские исходники целы и волки сыты :-)

Работа в команде достаточно быстро отучает править что-то только для себя...

С уважением,


 
Builder ©   (2002-05-14 20:37) [30]

2 Кулюкин Олег
Спасибо - мешал как раз горизонтальный тулбар Ж)



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

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

Наверх




Память: 0.53 MB
Время: 0.015 c
3-73072
Саша
2002-04-27 10:37
2002.05.23
изменить все поля в таблице при изменении такихже полей в др. таб


14-73390
Anatoly Podgoretsky
2002-04-16 18:31
2002.05.23
Чат


6-73337
Ihor
2002-03-11 17:05
2002.05.23
Динамическое создание TWebBrowser.


3-73011
qqqq
2002-04-25 10:43
2002.05.23
CompactDatabase в ADO


4-73434
SPeter
2002-03-14 13:16
2002.05.23
Помогите пожалуйста с сообщениями.