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

Вниз

Изменение ширины ячеек TDrawGrid в run-time   Найти похожие ветки 

 
tvolf   (2007-12-14 23:39) [0]

Всем привет. Такая проблема. Есть форма, на ней две панели (TPanel). Одна с выравниванием влево (alLeft),
другая - alClient. На левую панель положен TDrawGrid. Для него тоже установлено выравнивание в alClient,
то есть он занимает площадь всей левой панели. Для DrawGrid"а установлены свойства :
 ColCount = 1
 RowCoutn = 1
 FixedCols = 0
 FixedRows = 0
то есть, выводится всего одна ячейка на экран.
Далее, я меняю ширину левой панели при старте приложения
и хочу, чтобы ячейка динамически изменяла свои размеры, занимая
всю клиентскую область. Для этого в Form.Create пишу :

 DrawGrid.DefaultColWidth := DrawGrid.ClientWidth;  

Но странное дело -- ячейка не занимает всего доступного пространства ! Справа от неё остается еще пустое место. Выяснил, что всё приходит в норму, когда убираю скроллбары через ScrollBars = ssNone для DrawGrid.
Но мне нужен вертикальный скроллбар... Интересно то, что сам вертикальный скроллбар не отображается, но
программа считает, что он есть. Подскажите, как это можно побороть ?
Заранее благодарю.


 
Германн ©   (2007-12-15 01:12) [1]

Странная однако проблема. Ведь пока ячейка только одна, зачем ей свойство ScrollBars отличное от ssNone? А вот когда ячеек станет больше (а больше их может стать только при реализации некоего твоего алгоритма), тогда и можно будет задать свойству ScrollBars иное значение.


 
tvolf   (2007-12-15 09:46) [2]

Тут дело вот в чем. Я регулирую только ширину ячейки. Высоту (DefaultRowHeight) оставляю такой, какой она идет по-умолчанию (24 пиксела, что ли). Высота самой клиентской области DrawGrid в несколько раз
превышает это значение. И даже при установленном свойстве ScrollBars
в отличное от ssNone значение я просто не могу понять, почему при
выводе формы программа считает, что вертикальный скроллбар есть
(то есть, на экране его не видно, но место под него резервируется) ?


 
{RASkov} ©   (2007-12-15 12:01) [3]

> [0] tvolf   (14.12.07 23:39)
> Для этого в Form.Create пишу :
>
> DrawGrid.DefaultColWidth := DrawGrid.ClientWidth;

Перенеси сиё в метод TForm.OnActivate


 
tvolf   (2007-12-15 12:46) [4]


> {RASkov} ©   (15.12.07 12:01) [3]
> > Для этого в Form.Create пишу :
> > DrawGrid.DefaultColWidth := DrawGrid.ClientWidth;
>
> Перенеси сиё в метод TForm.OnActivate


Уже нашел выход, поместив вышеуказанный код в обработчик OnShow формы. Просто непонятно, почему такое происходит. Ведь, например, если
после отображения максимизировать и привести в обтарное положение главное окно приложения через кнопки в заголовке окна, ширина ячейки
DrawGrid принимает правильно значение. Почему этого не происходит
при старте ?


 
{RASkov} ©   (2007-12-15 12:58) [5]

> [4] tvolf   (15.12.07 12:46)
> Почему этого не происходит при старте ?

При старте еще не полностью сформировался интерфэйс программы)
:о)
Т.е. некоторые свойства устанавливаются "потом", после создания(Create)...



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

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

Наверх





Память: 0.46 MB
Время: 0.004 c
6-1192736496
DprPasDcu
2007-10-18 23:41
2008.08.31
Как управлять сетевыми подключениями?


15-1215708563
Nodt
2008-07-10 20:49
2008.08.31
Собираю машину.


2-1216735433
mc2
2008-07-22 18:03
2008.08.31
TTreeView скопировать в другой


1-1197184274
Lamer666
2007-12-09 10:11
2008.08.31
Как сделать необычную ФОРМУ с TImage-ем?


4-1195641412
Igor Zorkov
2007-11-21 13:36
2008.08.31
Hook





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