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

Вниз

Вертикальная полоса прокрутки в DBGrid   Найти похожие ветки 

 
Елена   (2002-08-11 13:00) [0]

Как от нее избавиться? Заранее благодарна.


 
Yngwar   (2002-08-11 13:19) [1]

Var
SINew: TScrollInfo;
Begin
With SINew Do Begin
cbSize:=0; fMask:=SIF_ALL; nMin:=0; nMax:=0;
nPage:=0; nPos:=0; nTrackPos:=0; End;
SetScrollInfo(DBGrid.Handle,SB_VERT,SINew,True);
End;

Но есть одна проблема:
это надо делать каждый раз, когда вызывается TDBGrid.UpdateScrollBar; а эта процедура статическая и определена в разделе Private - ее не перехватить.
Придется убивать ScrollBar каждый раз, когда меняется набор данных в таблице.


 
Yngwar   (2002-08-11 13:21) [2]

Поправка: Каждый раз, когда курсор перемещается на другую строку. (т.е. AfterScroll)


 
Елена   (2002-08-12 06:07) [3]

Yngwar, как это непросто :o)
Нельзя ли иначе?


 
Vov   (2002-08-12 10:37) [4]

Если использовать DBGridEh - там есть свойство видимости для каждого (вертикального и горизонтального) скроллинга


 
cherepovets   (2002-08-12 11:07) [5]

Для этого необходимо переопределить метод 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;


 
Елена   (2002-08-12 14:38) [6]

cherepovets, спасибо, но можно ли сделать то же самое без создания нового компонента и его регистрации?


 
gek   (2002-08-12 14:49) [7]

Да можно, но тогда надо ропределить когда это делать.
В принципе какая разница?


 
Елена   (2002-08-12 17:14) [8]

Не засорять палитру, наверное :o)


 
Елена   (2002-08-13 12:11) [9]

Или этого не избежать?


 
gek   (2002-08-13 12:27) [10]

делай как говорит
cherepovets © (12.08.02 11:07)
или замучаешься



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

Форум: "Базы";
Текущий архив: 2002.09.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
1-3373
EugenCFG
2002-08-21 13:06
2002.09.02
Работа с файлом...


3-3297
cherepovets
2002-08-09 15:25
2002.09.02
Paradox


1-3470
lety
2002-08-20 20:36
2002.09.02
arj


3-3232
Afrolov
2002-08-10 19:07
2002.09.02
Изменяемый набор данных


1-3396
Игорь С.
2002-08-21 14:41
2002.09.02
чтение файла в буфер.





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