Главная страница
    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.007 c
3-3237
niko45
2002-08-10 21:21
2002.09.02
КАК?


1-3365
Vital69
2002-08-22 09:08
2002.09.02
Файловая система в виде dataset


1-3389
Yrii
2002-08-22 13:37
2002.09.02
СРОЧНАЯ ПОМОЩЬ ПО ШИФРОВАНИЮ


14-3629
Axel
2002-08-05 12:26
2002.09.02
Galileo, Delphi for .NET


6-3535
Slava V.
2002-06-21 13:05
2002.09.02
проверка наличия интернет IP адреса





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