Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.05.23;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.51 MB
Время: 0.008 c
3-73017
DenNNis
2002-04-26 08:37
2002.05.23
Уважаемые Мастера!


3-73034
vne
2002-04-26 13:03
2002.05.23
Как найти последнюю запись в выборке Detail таблицы


1-73114
Anton_a
2002-05-12 16:00
2002.05.23
ini


7-73424
lipskiy
2002-02-25 16:18
2002.05.23
Как предотвратить ошибку EOleSysError для старой версии Shdocvw.dll (то есть, IE)?


1-73123
Arhangel
2002-05-08 13:38
2002.05.23
Как перевести короткий путь к файлу в длинный?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский