Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.01.10;
Скачать: CL | DM;

Вниз

Как убрать(скрыть) горизонтальный скролбар(прокрутку) у 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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.003 c
1-28494
Man In Red
2001-12-22 21:08
2002.01.10
Извините, но приходится еще раз задать этот вопрос, не получается все никак по нормальному сделать! Помогите пожалуйста!


6-28525
xnum
2001-10-16 11:36
2002.01.10
Скрипт на Дельфах... перспекива есть?


1-28511
VadX
2001-12-21 15:29
2002.01.10
Вопрос


3-28411
dva
2001-12-08 00:27
2002.01.10
Vopros


14-28539
FoRk
2001-11-10 19:06
2002.01.10
Народ, поддержите начинающий сайт http://makeitso.vov.ru





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