Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Мне нужно поместить на панель (TPanel) таблицу (DBGrid), но чтобы [D7, WinXP]


Michael5 ©   (2005-08-16 09:31:00) 

получившийся компонент был потомком DBGrid!
Для меня тут проблема в том, что мне приходится делать его потомком TPanel, иначе, если родитель - DBGrid, то панель выйдет за границы таблицы и станет не видна...

Можно ли визуальные компоненты размещать за границами родительского компонента, или тут можно решить проблему при создании (Create) этих компонентов? Или еще как-то...
Подскажите пожалуйста!


Michael5   (2005-08-17 09:10:00) [1]

Благодарю всех!
Буду разбираться с фреймами, никогда ими не пользовался


Юрий Зотов   (2005-08-16 18:13:00) [2]

> Michael5   (16.08.05 16:20) [3]

Нужно делать именно потомка от TPanel, а грид прописывать, как его свойство. Но есть способ намного проще и намного быстрее.

Сделайте фрейм (как обычную форму), потом зарегистрируйте его в качестве компонента (правым кликом мышки). И весь вопрос.


Reindeer Moss Eater   (2005-08-16 16:50:00) [3]

//а зачем мне это надо? Просто мне нужна панель с таблицей, на которой будут управляющие таблицей кнопки, т.д., и соответственно, зачем мне компонент - потомок панели, если она просто - несущий элемент... Мне нужен потомок DBGrid...//

У нормальных и логичных людей то, что тебе надо, называется фреймом.


Наиль   (2005-08-16 16:40:00) [4]

Зона видимости всегда ограничивается родительским окном.
В твоём случае, гораздо проще создать компонент от TPanel, и придать ему необходимую функциональность. Можно конечно, создать потомка от DBGrid, и при изменении Parent'а, скажем, на Form1, подсовывать под него панель с кнопочками. В этом случае верёвку с мылом, лучше далеко не убирать.


Michael5   (2005-08-16 16:20:00) [5]

В общем, проблема возникла потому, что я пытался создать компонент, и на нем - другой компонент (напр., таблица и на ней кнопка, или панель и на ней таблица и т.д....). При этом при задании координат второго компонента (допустим, я хочу, чтобы кнопка была над таблицей, и задаю соотв. координаты кнопки Top и Left отрицательными, правильно? У меня ведь родитель при этом - таблица, и ее верхний левый угол - нулевой) кнопка улезает за пределы таблицы и становится не видна...

Я же не претендую на знание, подскажите, где я заблуждаюсь :)

//а зачем мне это надо? Просто мне нужна панель с таблицей, на которой будут управляющие таблицей кнопки, т.д., и соответственно, зачем мне компонент - потомок панели, если она просто - несущий элемент... Мне нужен потомок DBGrid...//


Юрий Зотов   (2005-08-16 15:00:00) [6]

> Michael5   (16.08.05 09:31)

> Мне нужно поместить на панель (TPanel) таблицу (DBGrid), но
> чтобы [D7, WinXP] получившийся компонент был потомком DBGrid!

Зачем? Почему Ваш компонент обязательно должен быть на панели? А если пользователь захочет, например, положить его на форму, фрейм, GroupBox или еще куда-то? Разве это не нормально?

Грамотно сделанный визуальный компонент обязан уметь жить на любом родителе. И про своего родителя он знает только то, что это TWinControl и что на него указывает Parent. Все. Больше ему ничего про родителя не известно, да и не должно быть известно.

Поэтому совет такой - раз нужен потомок TDBGrid, так и делайте потомка TDBGrid, а про панель забудьте. Есть Parent - и все.


DimaBr   (2005-08-16 14:42:00) [7]

//Можно ли визуальные компоненты размещать за границами
А почему нельзя ?
А вообще проблема неясна. После пятикратного прочтения сообщения, я так ничего не понял


Наверх

Титульная страница Поиск, карта сайта Написать письмо