Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Работа через дескриптор


Автор: Компоратор 7.4.2007, 06:46
Вот есть такая возможность - через дескриптор H : HWND найти окно:

Код

var
  H : HWND;
begin
    H := FindWindow('TForm', 'Caption');


Можно ли через этот дескриптор управлять окном? Ну например, изменить его свойства?

Автор: Alexeis 7.4.2007, 10:20
Компоратор, Форма это двойной объект, одна его часть апишная (т.е. управляется виндой), а другая делфийская (управляется из программы). Все что можно делать для формы как для обычного Windows окна, легко делается через его Хэндл. Еще скажу, что много свойств формы есть ни что иное как вызовы API, потому если нужно сделать, то что делает свойство формы, нужно заглянуть в реализацию этого свойства, найти там API вызовы и произвести тоже самое из своей программы. 

Автор: Sunvas 7.4.2007, 15:18
Цитата(Компоратор @  7.4.2007,  06:46 Найти цитируемый пост)
Ну например, изменить его свойства?

Можно. Что конекретно тебя интересует?

Автор: Компоратор 8.4.2007, 04:15
Цитата

Можно. Что конекретно тебя интересует?


У меня в режиме runtime создаются несколько экземпляров формы NoteFrm:

Код

Application.CreateForm(TNoteFrm,NewNoteFrm);


конкретно к каждому экземпляру я обращаюсь через Self (self.AlphaBlend := true - к примеру).  Кроме этого мне нужно обратиться ко всем созданным экземплярам данной формы. Я подумывал сделать это, используя имеющийся в наличии объект TStringList, в который загружены заголовки всех этих форм - в цикле, через дескриптор.

Есть у кого-нибудь идеи на этот счет?

Автор: Snowy 8.4.2007, 08:04
Никакие дескрипторы тебе не нужны.
Никаких списков составлять не нужно.
Screen.Forms, Screen.FormCount

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)