Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
1-1124701636
Laymer
2005-08-22 13:07
2005.09.11
QuickReport


1-1124537780
Агент Х-СОМ
2005-08-20 15:36
2005.09.11
Отладка компонентов


3-1122468976
vok
2005-07-27 16:56
2005.09.11
Двусторонняя печать


14-1124274282
Дмитрий_Б
2005-08-17 14:24
2005.09.11
Навеяно недавней веткой


1-1124634052
OldNaum
2005-08-21 18:20
2005.09.11
Менеджмент сервиса





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