Помощь - Поиск - Пользователи - Календарь
Полная версия: поиск компонентов
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Delphi
Client
Ищу из другого окна все компоненты (в мемо закинуть их класс хотябы) smile.gif
FindWindowEx ищет только по классу и находит только одно окно. Делаю так
function enumproc(wnd:hwnd; lparam:lparam):BOOL; stdcall;
var
s:pchar;
begin
GetClassName(wnd,s,20);
form3.Memo1.Lines.Add(s)
end;


procedure TForm3.Button1Click(Sender: TObject);
var
wnd,wnd1,wnd2:hwnd;
begin
memo1.Clear;

EnumChildWindows(FindWindow(nil,'Form1'),@enumproc,0) //это форма другого приложения с кнопкой и мемо
end;
Но вылетает с ошибкой. Что не так?
volvo
Цитата
Что не так?
Вот это:
function enumproc(wnd:hwnd; lparam:lparam):BOOL; stdcall;
var
s: array[0 .. 255] of char; // <--- раз
begin
GetClassName(wnd, s, sizeof(s));
form3.Memo1.Lines.Add(s);
result := true; // <--- два
end;
Если не вернуть True, то после первого же обработанного элемента перечисление прекратится...
Client
Цитата
result := true; // <--- два
Спасибо. Думал выведет TMemo и TButton, а там список большуший. Буду условие ставить для нужных типов

Добавлено через 5 мин.
А есть функция которая сравнивает строку с несколькими строками?
volvo
smile.gif Напиши... Запихай строки в TStringList, и сравнивай IndexOf проверяемой строки с (-1)...
Client
сделал smile.gif
А как узнать что храниться в мемо, стоит ли галочка на чекбоксе. Что еще можно из них вытащить?

Добавлено через 3 мин.
и если у меня 2 попап меню, как их найти? getmenu/getpoapmenu найдут первое меню, а через EnumChildWindows оно не находиться
volvo
Цитата
А как узнать что храниться в мемо, стоит ли галочка на чекбоксе. Что еще можно из них вытащить?
Из Edit-а можешь вытащить сам текст (GetWindowText), насколько я помню, TMemo этого тебе просто так не позволит сделать. Что касается Чекбокса - то пошли ему сообщение BM_GETCHECK, если в ответ получишь BST_CHECKED - значит, есть галочка, если BST_UNCHECKED - значит нету. Иначе получишь BST_INDETERMINATE...

В общем, ходи в MSDN и смотри информацию. о сообщениях Windows, и о стандартных контролах...
Client
ок, спасиб
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.