Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.138.116.20] |
|
Сообщ.
#1
,
|
|
|
Идея One'a насчет enumchildwindows меня смутила, А ЧЁ ДАННАЯ FUNC РЕТУРНЁТ МНЕ, А???
а TControl - это не смешно ведя окошкия не у родной формы беру а у отфонарного объекта запущенного в данный момент. С нетерпением жду ответа sWap |
Сообщ.
#2
,
|
|
|
Короче, примерно так:
//снесала описываем функцию EnumChildProc function EnumChildProc(Wnd: hWnd; lParam: LongInt): Boolean; stdcall; begin //здесь Wnd - дискрепторы дочерних окон, //делай с ними что хошь Result:=True; //или False если хочешь остановить перебор end; // а теперь перебираем дочерние окна procedure TForm1.Button1Click(Sender: TObject); begin EnumChildWindows(Handle, @EnumChildProc, $FF); //Здесь Handle - дискрептор родительского окна, $FF -вообще любое число, которое будет получаться функцией EnumChildProc в качестве lParam; //все end; Если так слишком сложно, то делай так: procedure TForm1.Button1Click(Sender: TObject); var I: Integer; Wnd: hWnd; begin Wnd:=GetWidnow(GetDesktopWindow, GW_CHILD); while Wnd<>0 do begin if GetParent(Wnd)=Handle then //опять Handle - дискрептор родительского окна begin //Нашли... end; Wnd:=GetWindow(Wnd, GW_HWNDNEXT); end; end; |
Сообщ.
#3
,
|
|
|
А, вот так круче, а то я со своими базами данных в API почти нихрена не рублю.
Огромное спасибо. swap |