![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не знаю как убрать ScrollBar из DBGrid ... [D6]
Lina © (2002-09-11 13:35:00)Добрый день.
Как убрать ScrollBar из DBGrid ?
Помогите ...
Johnmen (2002-09-11 17:24:00) [1]>Prooksius © (11.09.02 16:58)
>Позиционируется как-то по-левому, вообще непонятно, как
Позиционируется вертикальный ScrollBar правильно, если используемые компоненты доступа обеспечивают эту правильность.
В общем случае для SQL-серверных БД спозиционировать невозможно.
И дело НЕ в "извратный он.." !
>REA (11.09.02 17:07)
>Еще более извратный в DBLookupCombobox
Ничего там извратного нет ! Просто надо понять логику поведения...:)
REA (2002-09-11 17:07:00) [2]Еще более извратный в DBLookupCombobox - при смене записи по нажатию на скролл бар значение ключевого поля меняется, а текст в комбобоксе нет. Глючит на всех версиях Delphi включая 7.
Prooksius (2002-09-11 16:58:00) [3]Да извратный он... Позиционируется как-то по-левому, вообще непонятно, как. Особенно, если мало записей в Датасете.
Я убрал стандратный ScrollBar и поставил свой с отработкой скроллинга в Датасете. Все пучком. ;)
REA (2002-09-11 16:47:00) [4]А чем вам скроллбар мешает?
sniknik (2002-09-11 14:48:00) [5]очевидно так моргать не будет т.к. в паинте скрол убивается еще до отрисовки.
sniknik (2002-09-11 14:45:00) [6]Вопрос уже был, и ктото уже ответил, я отметил для себя метод как интересный но пока не проверял привожу как есть (было).
Для этого необходимо переопределить метод Paint. Внутри метода Paint Вы должны вызвать API процедуру SetScrollRange для установки минимального и максимального значений скроллирования в ноль (тем самым запретив скроллбар), а затем вызвать inherited. Следующий код, это unit содержащий новый компонент под названием TNoScrollBarDBGrid, который делает это.
type
TNoScrollBarDBGrid = class(TDBGrid)
private
protected
procedure Paint; override;
public
published
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;
Prooksius (2002-09-11 14:38:00) [7]Просто DBGridEh имеет кучу других всевозможных настроек, и,
по-моему, лучший.
Насчет твоего способа, попробуй это, когда еще форма не рисуется (в OnShow, например), чтобы сразу показывать DBGrid без ScrollBar-а.
Должно убрать моргание.
Удачи
Lina (2002-09-11 14:31:00) [8]
Еще можно так:
ShowScrollBar(DBGrid.Handle, SB_VERT,False);
Только моргает сильно...
Lina (2002-09-11 14:04:00) [9]Спасибо.
Посмотрю...
Prooksius (2002-09-11 13:51:00) [10]DBGridEh