Форум: "Основная";
Текущий архив: 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.009 c