|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
20.06.2008, 15:03 | #1 |
Регистрация: 18.06.2008
Сообщений: 7
|
EnumWindows внури объекта
При переносе вызова процедуры получения указателей на запущенные приложения в объект (см. ниже) в вызываемую функцию вместо указателей почему-то попадает 0.
Подскажите пожалуйста в чем проблема? Вызов внутри объекта Код:
Код:
|
20.06.2008, 15:26 | #2 |
Форумчанин
Регистрация: 23.05.2008
Сообщений: 219
|
Для перебора всех дочерних окон некого окна используй
EnumChildWindows.
The Revolution is Now!
|
20.06.2008, 15:32 | #3 |
Регистрация: 18.06.2008
Сообщений: 7
|
Мне не нужны дочерние, мне нужен перечень главных.
Вариант в основном тексте программы выдает то, что мне нужно. Для порядка решил засунуть все в объект, при этом функция вызывается, количество вызовов такое же как и при работе в основном модуле программы. Но при этом какая-то проблема с передачей параметра, передается "0". |
20.06.2008, 15:46 | #4 |
Форумчанин
Регистрация: 23.05.2008
Сообщений: 219
|
Попробуй обявить процедуру EnumWindowsWnd(H: HWnd) : Bool; StdCall;
не методом TAppList а отдельно.
The Revolution is Now!
|
20.06.2008, 15:53 | #5 |
Регистрация: 18.06.2008
Сообщений: 7
|
Да так все работает, но повторяю:
хочется все иметь упакованным в объект |
20.06.2008, 16:03 | #6 |
Форумчанин
Регистрация: 23.05.2008
Сообщений: 219
|
Мне кажется что так не получется поскольку процедуры обратного вызова не могут быть методами каких либо обэктов.
Максимум можно упаковать все в отдельный модуль. Обяви в нем свой обэкт и процедуру EnumWindowsWnd. При создании обэкта указывай адрес этой процедуры. Подключай модуль и свободно используй обэкт.
The Revolution is Now!
|
20.06.2008, 16:29 | #7 |
Регистрация: 18.06.2008
Сообщений: 7
|
Дело в том, что при вызове функция результат должна сохранять в поле объекта.
При работе снаружи это сделать сложно. Если нет конкретных предложений по решению проблемы давай не будем засорять сайт сообщениями на тему "а может вот так" (только без обид) . Написать без объекта я могу, но хочется чтобы было все красиво. Поэтому подожду, может кто опытный поможет. |
20.06.2008, 19:22 | #8 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
King Nothing, объявляйте EnumWindowsWnd как статический метод и передавайте в EnumWindows указатель self вторым параметром. Потом в EnumWindowsWnd будете его (lParam) кастать к своему типу. Это самый простой способ, есть и другие, но пользоваться лучше указанным. И зачем обижать тех, кто старается помочь?
Последний раз редактировалось B_N; 22.06.2008 в 03:32. |
20.06.2008, 19:41 | #9 | ||
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Цитата:
короче Код:
MSDN: Цитата:
Последний раз редактировалось B_N; 22.06.2008 в 03:35. |
||
22.06.2008, 20:30 | #10 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
получение списка окон без EnumWindows:
Код:
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Определение цвета объекта | Tan4ik | Помощь студентам | 4 | 16.06.2008 15:53 |
Движение объекта по кругу | Roberto | Помощь студентам | 2 | 06.05.2008 15:44 |
Динамическое создание объекта | Fruit | Общие вопросы Delphi | 5 | 24.01.2008 11:00 |
Динамическое создание объекта | Fruit | Общие вопросы Delphi | 2 | 16.01.2008 21:18 |
Свойства объекта | KBak | Win Api | 5 | 15.08.2007 20:21 |