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

Вниз

Про Handle...   Найти похожие ветки 

 
Kozhanov ©   (2002-03-01 11:44) [0]

Господа, как проверить есть у контрола Handle ?
Я знаю, что можно его проверить на "наследственность"
типа if AControl.InheritsFrom(TWinControl) then... ,
но может есть ещё какой-то способ, API - функция, что ли...


 
Виктор Щербаков ©   (2002-03-01 11:49) [1]

TWinControl.HandleAllocated


 
Kozhanov ©   (2002-03-01 11:50) [2]

> Виктор Щербаков
А если контрол не наследуется от TWinControl !?


 
Юрий Зотов ©   (2002-03-01 12:20) [3]

> А если контрол не наследуется от TWinControl

То хэндла у него нет и быть не может.

Полная проверка такая:

if
(AControl is TWinControl) // Есть свойство Handle
and
TWinControl(AControl).HandleAllocated // Окно уже создано
then...


 
Kozhanov ©   (2002-03-01 12:49) [4]

> Юрий Зотов
Да я понимаю, что если контрол не наследуется от TWinControl
то у него нет Handle"a, но мне хотелось бы определить
есть ли handle, используя какую-нибудь API - функцию (ежели таковая имеется)...Т.е. сделать всё через неё - одной строкой,
типа if HasHandle(AControl) then...


 
Виктор Щербаков ©   (2002-03-01 12:55) [5]

API ничего не знает о VCL, а значит и о контролах (в смысле TControl).

Следовательно API функции, которой надо передавать ссылку на контрол, быть не может.


 
Kozhanov ©   (2002-03-01 12:59) [6]

> Виктор Щербаков
Согласен. Вы меня убедили.
Про API это я погорячился... Видимо не выспался :)
Всем спасибо. Вопрос снимаю...


 
Юрий Зотов ©   (2002-03-01 13:36) [7]

Но нет проблем написать такую функцию:

function HasHandle(AControl: TControl): boolean;
begin
Result := (AControl is TWinControl) and TWinControl(AControl).HandleAllocated
end;


 
MBo ©   (2002-03-01 14:56) [8]

Кстати, наличие, скажем, того же property Handle нельзя проверить с помощью GetPropInfo или GetPropList, поскольку оно не published.
А какими средствами можно получить список всех свойств объекта, как умеет сама IDE (например, code completion)
В Toolsapi для IOTAEditActions есть объявление процедуры
CodeCompletion. Интересно, как она работает



 
Виктор Щербаков ©   (2002-03-01 16:18) [9]

Мне кажется, что IDE получает список всех свойств, ковыряя исходник или DCU. Но зачем эту информацию (об именах всех свойств) хранить в runtime? Лишние накладные расходы!



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

Текущий архив: 2002.03.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.009 c
3-57324
DimaIv
2002-02-02 12:48
2002.03.18
Как сделать чтоб при фильтрации с пом. проц. SetRage


14-57517
VictorT
2002-02-04 11:24
2002.03.18
Градский


1-57466
shane54
2002-03-02 19:46
2002.03.18
Передача параметров в функцию


6-57482
HEX
2002-01-03 20:54
2002.03.18
Dialer компонент?


6-57483
Surf
2002-01-04 09:12
2002.03.18
Помогите! Не могу найти. Вопрос по NMHTTP.