Текущий архив: 2005.09.11;
Скачать: CL | DM;
ВнизHandle окна Найти похожие ветки
← →
DimaBr (2005-07-22 13:34) [0]Удалено модератором
Примечание: СПАМ
← →
Джо © (2005-07-22 13:35) [1]Что есть "дескриптор"? Что есть "Handle окна"? Сплошная каша...
← →
Alx2 © (2005-07-22 13:38) [2]DimaBr (22.07.05 13:34)
Неверно. Например, TDataSource не имеет дескриптора (Handle), но двигать его можно. :)
← →
DimaBr (2005-07-22 13:50) [3]Харош прикалываться, лучше помогли бы.
← →
Джо © (2005-07-22 13:56) [4]
> [3] DimaBr (22.07.05 13:50)
> Харош прикалываться,
Не-а.
> лучше помогли бы.
А ты уже ответил на уточняющие вопросы или я что-то пропустил?
← →
DimaBr (2005-07-22 14:00) [5]Компонент, помещённый на форму (в дизайнере) является окном со своим Handle, которое Винда и перерисовывает когда нужно. Может быть я не прав ?
← →
Джо © (2005-07-22 14:20) [6]
> [5] DimaBr (22.07.05 14:00)
> Компонент, помещённый на форму (в дизайнере) является окном
> со своим Handle
Не обязательно.
> которое Винда и перерисовывает когда нужно
Не обязательно.
> Может быть я не прав ?
Скорее всего.
---
См. иерархию объектов-наследников TWinControl, TControl, прочитай о них справку и почувствую разницу ;-)
← →
Alexander Panov © (2005-07-22 14:20) [7]DimaBr (22.07.05 14:00) [5]
Компонент, помещённый на форму (в дизайнере) является окном со своим Handle, которое Винда и перерисовывает когда нужно. Может быть я не прав ?
Обрати внимание на компонент TLabel.
← →
Чапаев © (2005-07-22 14:26) [8]Может он имеет в виду, что каждый прямоугольничек в дизайнере является окном?
← →
Digitman © (2005-07-22 14:27) [9]
> Компонент, помещённый на форму (в дизайнере) является окном
> со своим Handle
в общем случае неверно.
← →
alpet © (2005-07-22 14:32) [10]>Даже невизуальный компонент имеет дискриптор иначе как бы мы его >видели и двигали по форме.
Правда ? Ну-ка для примера, приведи значение свойства Handle любого невизуального компонента на свой выбор.
← →
Юрий Зотов © (2005-07-22 14:40) [11]> DimaBr
1. Компоненты - это класс TComponent и все его потомки.
2. Компоненты подразделяются на визуальные (TControl и все его потомки) и невизуальные (все остальные).
3. Визуальные компоненты, в свою очередь, подразделяются на оконные (TWinControl и все его потомки) и графические (TGraphicControl и все его потомки).
4. Окнами являются только оконные компоненты. Прочие компоненты тоже могут создавать окна (напр. TTimer), но сами по себе окнами не являются.
5. Поэтому вопрос лишен смысла и ответить на него невозможно.
← →
DimaBr (2005-07-22 14:45) [12]Народ, чего кипятитесь. Берём FastExperts или что-нибуть наподобе и смотрим как он прячет все невизуальные компоненты с формы:
Перебор всех компонентов (Handle) на форме, если класс этого Handle - TContainer, то ShowWindow(Handle, SW_HIDE);
Вывод - компонент обладает Handlom
← →
Digitman © (2005-07-22 14:51) [13]
> класс этого Handle - TContainer
> Вывод - компонент обладает Handlom
галиматья полная
← →
Юрий Зотов © (2005-07-22 15:04) [14]> DimaBr (22.07.05 14:45) [12]
Невизуальные компоненты сами по себе невидимы. Но в design-time они должны быть видны, поэтому для отображения невизуального компонента среда разработки (IDE) создает окно класса TContainer и работает с ним. То есть, такое окно представляет компонент и является частью IDE, а не компонента. Сам же компонент о наличии такого окна не подозревает и не имеет к нему никакого отношения.
Для визуальных компонентов IDE окон-представителей не создает, поскольку это не нужно (они видны и сами по себе, без представителей).
← →
DimaBr (2005-07-22 15:59) [15]> Юрий Зотов
Огромное спасибо, теперь наконец понятно. Но как определить Handle этого окна ? Delphi - то различает соотношение компонент - окно.
← →
Digitman © (2005-07-22 16:05) [16]
> DimaBr (22.07.05 15:59) [15]
ты дизайн-тайм-эксперт что-ли пишешь ?
← →
DimaBr (2005-07-22 16:26) [17]Да, пишу эксперт. Хочу прятать невизуальные компонеты выборочно, бо вместе с хранимыми процедурами прячется ActionList, а это мне не нравится.
← →
Юрий Зотов © (2005-07-22 16:32) [18]> DimaBr (22.07.05 15:59) [15]
> как определить Handle этого окна ? Delphi - то различает
> соотношение компонент - окно.
Раз IDE сама создает и компонент, и окно, то она, естественно о них обоих все знает. В том числе, знает, какое окно какому компоненту сопоставлено - так что для IDE проблем нет.
А вот для нас они есть. Скорее всего, TContainer - это недокументированный потомок TWinControl, используемый только внутри IDE и содержащий ссылку на связанный с ним невизуальный компонент. И, поскольку для нас он недокументирован, то нам остается либо найти внутреннюю документацию Borland (что вряд ли реально), либо заняться исследованиями (или, говоря по-простому - хакерством). Причем:
- раз это окно существует только в IDE, то и определить его может только код, работающий в design-time;
- раз оно создается только для невизуальных компонентов, то и определить его можно только для них;
- и в любом случае сам такой компонент никакого хэндла не имеет, поэтому исходный вопрос все равно поставлен некорректно.
← →
Юрий Зотов © (2005-07-22 16:35) [19]> DimaBr (22.07.05 16:26) [17]
> Да, пишу эксперт.
Тогда советую задать вопрос в конференции "Компоненты", поскольку здесь он явно не по теме и может быть удален. И хорошо его сформулировать, чтобы было понятно, о чем идет речь и в чем состоит проблема.
← →
DimaBr (2005-07-22 16:40) [20]Спасибо огромное всем, пошёл на "Компоненты"
Страницы: 1 вся ветка
Текущий архив: 2005.09.11;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.01 c