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

Вниз

Как убрать(скрыть) горизонтальный скролбар(прокрутку) у TDBGrid-а?   Найти похожие ветки 

 
cahek2000   (2001-12-21 08:40) [0]

Необходимо насовсем скрыть горизонтальный скролбар у ДБГрида.
Просто скрыть с помощью функции SetWindowLong удалось, но при изменении размера у формы он опять появляется.
Вариант перехвата ОнРесайз у формы и все время убирать скролбар не годиться, т.к. происходит нежелательное мигание!


 
Lusha   (2001-12-21 10:29) [1]

Вообще то это проще лечится. Просто переопределяется конструктор DBGrid

TMyDBGrid = class(TDBGrid)
public
constructor Create(AOwner : TComponent); override;
end;

constructor TMyDBGrid.Create(AOwner : TComponent);
begin
inherited Create(AOwner);
Scrollbars := ssNone;
end;

И все дела.

Удачи



 
Юрий Зотов   (2001-12-21 10:49) [2]

Дык... А зачем компоненты-то плодить без надобности? То же самое можно сделать внешним кодом - например, в FormCreate.


 
Lusha   (2001-12-21 10:55) [3]

Да ну?


 
Юрий Зотов   (2001-12-21 11:23) [4]

Не "Да ну?", а "ну да". И даже не надо спорить. Никогда не работали с protected-секцией? Уже устал писать примеры на эту тему.


 
Юрий Зотов   (2001-12-21 11:55) [5]

Во избежание следующих вопросов...

type
TFriendGrid = class(TDBGrid);

procedure TForm1.FormCreate(Sender: TObject);
begin
TFriendGrid(DBGrid1).ScrollBars := ssVertical
end;

Разница в том, что здесь НЕ создается новый компонент, а используется простое приведение класса. В итоге - экономится память, не засоряется палитра, минимум правки кода и т.д.


 
Lusha   (2001-12-21 12:26) [6]

Спорить никто и не собирался. Просто если сказал "А" - говори "Б".
P.S. Про палитру, я правда, как то не уловил... (


 
Lusha   (2001-12-21 12:33) [7]

А экономия памяти, это те несколько байт переопределенной процедуры?


 
Юрий Зотов   (2001-12-21 12:36) [8]

Это вместо "спасибо"? Я правильно понял?


 
Romkin   (2001-12-21 12:37) [9]

Экономия памяти существенная - все виртуальные методы, как переопределнные, так и предка, присутствуют в потомке как собственные...


 
Lusha   (2001-12-21 12:54) [10]

>Romkin
Применительно к данному случаю, пожалуйста. На сколько увеличится размер памяти?
>Юрий Зотов
А могли бы и ответить. Тем не менее, СПАСИБО :o)



 
Юрий Зотов   (2001-12-21 13:21) [11]

Все ОК, отвечаю.

1. О палитре и правках кода. Сейчас у Вас на используется компонент стандартного класса TDBGrid. Если породить от него свой компонент (с переопределенным конструктором), то его придется регистрировать и править все PAS и DFM, в которых он задействован - иначе Вы не сможете поднимать формы в design-time. В итоге - много ручной работы, плюс "замусоривание" палитры, плюс лишний расход памяти в design-time (на новый класс).

2. О памяти в run-time. Да, это тот самый новый конструктор. Да, это всего несколько байт. Но это и есть "стиль". Ведь любая программа состоит именно из маленьких кусочков и каждый из них должен быть написан грамотно. Иначе "несколько байт" накапливаются и в итоге перерастают в те самые десятки и сотни килобайт.


 
Lusha   (2001-12-21 13:30) [12]

>Господь
Слава тебе!!! Я уж было испугался, что снова что-то пропустил...
>Юрий Зотов
Спасибо еще раз за описанный способ работы с protected секцией. Все остальное я уже знаю. (Опять задумчиво) И уже давно...


 
cahek2000   (2001-12-21 15:01) [13]

Спасибо всем!!!
И особенная благодарность Юрию Зотову за ответ на этот вопрос.
Я подозревал, что можно подправить какое-то защищенное свойство, но не знал толком какое, теперь буду иметь в виду!




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

Форум: "Основная";
Текущий архив: 2002.01.10;
Скачать: [xml.tar.bz2];

Наверх















Память: 0.86 MB
Время: 0.024 c
3-28420
Ross
2001-12-08 21:58
2002.01.10
Проблема со шрифтами


3-28418
Naile
2001-12-09 12:08
2002.01.10
IBX&Insert


14-28538
Внук
2001-11-12 17:09
2002.01.10
Internet Explorer 6.0


14-28529
Dup
2001-11-14 15:09
2002.01.10
Тоска


14-28535
MJH
2001-11-10 15:03
2002.01.10
Скроллбары на сайтах





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