Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.06.2012, 10:26
serebrus serebrus вне форума
Прохожий
 
Регистрация: 22.12.2011
Сообщения: 26
Репутация: 10
По умолчанию Сделать активным вкладку

Привет друзья программеры.
С помощью EnumChildWindows ищу TPageControl, а именно нужную мне вкладку другого приложения (разработано в delphi).
После нахождения ни как не могу его активировать, т.е. перейти на эту вкладку, выдается ошибка связанная с памятью.
Пробовал разные функции:
ShowWindow(h, SW_NORMAL), SendMessage(h, WM_ACTIVATE, WA_ACTIVE, 0), SetForegroundWindow(h) и даже пару SendMessage(h, WM_LBUTTONDOWN, 0, 0); SendMessage(h, WM_LBUTTONUP, 0, 0);
Но увы, все старания не помогли, что посоветуете?
Ответить с цитированием
  #2  
Старый 28.06.2012, 10:39
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

если окно активное, то кликами, эмуляцией клавиш всяко можно
Ответить с цитированием
  #3  
Старый 28.06.2012, 10:52
serebrus serebrus вне форума
Прохожий
 
Регистрация: 22.12.2011
Сообщения: 26
Репутация: 10
По умолчанию

Pyro, спасибо конечно за ответ, но я же написал:
Пробовал разные функции:
ShowWindow(h, SW_NORMAL), SendMessage(h, WM_ACTIVATE, WA_ACTIVE, 0), SetForegroundWindow(h) и даже пару SendMessage(h, WM_LBUTTONDOWN, 0, 0); SendMessage(h, WM_LBUTTONUP, 0, 0);
Но увы, все старания не помогли
Ответить с цитированием
  #4  
Старый 28.06.2012, 10:57
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

а если сделать все вкладки кроме нужной невидимыми?

если не поможет то "эмуляцией клавиш всяко можно": табы, может стрелки и пробел

у кликов ещё координаты могут иметь значение

Последний раз редактировалось Pyro, 28.06.2012 в 10:59.
Ответить с цитированием
  #5  
Старый 28.06.2012, 11:46
serebrus serebrus вне форума
Прохожий
 
Регистрация: 22.12.2011
Сообщения: 26
Репутация: 10
По умолчанию

В интернете нашел про сообщение TCM_SETCURSEL, но delphi почему то ругается на него: Undeclared identifier, хотя я включил ShellAPI
Ответить с цитированием
  #6  
Старый 28.06.2012, 13:57
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Цитата:
Сообщение от serebrus
TCM_SETCURSEL Undeclared identifier
uses CommCtrl
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #7  
Старый 28.06.2012, 16:32
serebrus serebrus вне форума
Прохожий
 
Регистрация: 22.12.2011
Сообщения: 26
Репутация: 10
По умолчанию

NumLock, спасибо, помогло, нужная мне вкладка становится активной, НО компоненты ране активной вкладки (т.е. другой вкладки) отображаются здесь.
Как можно это исправить?
Ответить с цитированием
  #8  
Старый 29.06.2012, 14:58
serebrus serebrus вне форума
Прохожий
 
Регистрация: 22.12.2011
Сообщения: 26
Репутация: 10
По умолчанию

Всем спасибо, проблема решилась:
SendMessage(Handle, TCM_SETCURFOCUS, TabIndex, 0);
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:46.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter