Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Почему-то окошко не активируется... [D7, XP]


cvg ©   (2006-12-26 11:32:00) 

Вот, когда-то оно работало, и соответствующее окошко становилось верхним и активным, а сейчас не срабатывает... С чего бы это?


  MainForm.FormStyle := fsStayOnTop;
  Process := TLaunchedProcess.Create('info.exe');
  With Process Do
   Try

    wHandle := FindWindow('InfoClass');
    ActivateWindow(wHandle);

    h_mdi := FindWindow(wHandle,'MDIClient',nil,0);
    h_pars := FindWindow(h_mdi,'InfoMDITable',nil,0); // таблица параметров
    if h_pars = 0
    then raise Exception.Create('Не найдена таблица параметров!');

    windows.BringWindowToTop(h_pars);
Application.ProcessMessages;
   Finally
    Free;
   End;


cvg   (2006-12-26 16:12:00) [1]

Да. Привожу даже конкретные цифры:

wHandle = 3477370
h_mdi = 266408
h_pars = 135250


alex_***   (2006-12-26 15:52:00) [2]

а в h_pars пишется что-ть осмысленное?


cvg   (2006-12-26 15:43:00) [3]

Определения типов:

Process: TLaunchedProcess;
h_mdi, h_pars, wHandle:HWND;

Есть некая программа (доступа к ее исходникам нет), в которой необходимо сделать активным одно из ее окошек. "Info.exe" -- имя экзешника проги. Тип главного окна проги -- 'InfoClass', типы подчиненных окон -- 'MDIClient' и 'InfoMDITable'. Исходно функция windows.BringWindowToTop(h_pars) корректно делала активным нужное окно. Потом в течении ну, скажем, года этот режим не использовался, тогда как в код программы -- в других его частях -- вносились разнообразные изменения, тогда как эта часть была просто закомментарена. Теперь, раскомментарив ее, я вдруг обнаружил, что заданное окно активным не делается. Переменные wHandle, h_mdi и h_pars приобретают некоторые значения, функция windows.BringWindowToTop(h_pars) не срабатывает (во всяком случае, заданное окно не активируется). В чем дело -- абсолютно непонятно :(.


Desdechado   (2006-12-26 13:31:00) [4]

много кода без пояснений, что работало и что неактивное
про типы вообще молчу


Наверх

Титульная страница Поиск, карта сайта Написать письмо