как открыть окно втихую?

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
vd-vuf
Бывалый
Сообщения: 61
Зарегистрирован: 12 Декабрь 2008, 12:09
Откуда: Верхний Уфалей
Контактная информация:

как открыть окно втихую?

Сообщение vd-vuf »

незнаю, может вопрос банальный
научите как открыть окно "MDI Child" втихую :)
суть.. например, есть приложение в нем масса процедур "Process"
когда запускается процесс окно процесса становится активным что естественно, но напрягает.
Приложение висит в трее, запустило отработку задач (около сотни процессов)
в это время в винде работать невозможно фокус выпрыгивает с активного окна (например с ворда или с той же клаши),
приходится брать мышу и тыкать, чтоб вернуть фокус обратно.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7385
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 14 раз
Поблагодарили: 49 раз

Re: как открыть окно втихую?

Сообщение Игорь Столяров »

vd-vuf писал(а):запустило отработку задач (около сотни процессов)
Может быть я Вас огорчу, но RunTime Clarion поддерживает до 64 процессов.
С другой стороны - а что мешает:
1. В окне процесса установить аттрибут ToolBox - тогда на него фокус не будет переводится.
2. Даже если фокус переводится - можно запомнить номер потока текущего окна и принудительно вернуть его обратно.
Это обсуждалось - поройся в форуме.
За теми кто отстал - не возвращаться. (С) Кодекс
vd-vuf
Бывалый
Сообщения: 61
Зарегистрирован: 12 Декабрь 2008, 12:09
Откуда: Верхний Уфалей
Контактная информация:

Re: как открыть окно втихую?

Сообщение vd-vuf »

Игорь Столяров писал(а):
vd-vuf писал(а):запустило отработку задач (около сотни процессов)
Может быть я Вас огорчу, но RunTime Clarion поддерживает до 64 процессов.
С другой стороны - а что мешает:
1. В окне процесса установить аттрибут ToolBox - тогда на него фокус не будет переводится.
2. Даже если фокус переводится - можно запомнить номер потока текущего окна и принудительно вернуть его обратно.
Это обсуждалось - поройся в форуме.
устарели ваши цифры :) это было до с6, я вас удивлю

Код: Выделить всё

The maximum number of simultaneously available execution threads in a single application is theoretically unlimited. However, the word "unlimited" means that limits are applied not by the Clarion Runtime Library, but by the Operating System’s environment settings, i.e., limited to the amount of virtual memory available for the process, or limited number of threads in the system, or limited number of windows (including controls) that can be opened simultaneously in the process, etc. Therefore, THREAD always returns a value in the range of one (1) to the upper limit of the SIGNED integer (2,147,483,647).
ну и потом я ж неговорию что все процессы одновременно
с ToolBox поэксперементирую
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7385
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 14 раз
Поблагодарили: 49 раз

Re: как открыть окно втихую?

Сообщение Игорь Столяров »

Спасибо - буду знать ...
С другой стороны у меня есть программа в которой плодятся мелкие процессы и выполняют обработку.
В общем-то все работает где-то до 25-35 процессов одновременно, потом начинаются жуткие тормоза, которые рано или поздно заканчиваются GPF. Причем не зависимо от кол-ва оперативной и виртуальной памяти. Поэтому указанные в описании цифры все-таки следует воспринимать как теоритические лозунги ... :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
StillZero
Ветеран
Сообщения: 454
Зарегистрирован: 06 Июль 2005, 2:17
Откуда: Хабаровск
Контактная информация:

Re: как открыть окно втихую?

Сообщение StillZero »

варианты. но не точные, проверять надо
1. перед "показом" окна 0{Prop:Hide} = TRUE, хз поможет или нет
2. перед открытием окна берем через API GetForegroundWindow() (оно вроде), а после возращаем фокус на место.. SetForegroundWindow
3. стиль скорее всего есть какой нибудь у окна, чтобы фокус не получать... в принципе это тот же вариант, что и тулбокс
Все сайты закрыты...
vd-vuf
Бывалый
Сообщения: 61
Зарегистрирован: 12 Декабрь 2008, 12:09
Откуда: Верхний Уфалей
Контактная информация:

Re: как открыть окно втихую?

Сообщение vd-vuf »

ToolBox - мертвому припарки, при откртытии такого окна, не оно само дак фрейм получает фокус
:) до открытия окна 0{Prop:Hide} = TRUE просто делает невидимым фрейм
QuickWindow{PROP:Hide} = True - до открытия, бесполезно, после открытия - уже позно
не хотелось связываться с api :(
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7385
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 14 раз
Поблагодарили: 49 раз

Re: как открыть окно втихую?

Сообщение Игорь Столяров »

vd-vuf писал(а):не оно само дак фрейм получает фокус
О боже ... Там еще и фрейм ... ?
Может быть тогда есть смысл запускать потоки вообще без открытия окон - зачем они если программа свернута в область уведомления ? Или снять с этих окон признак MDI. У меня потоки запускаются как простые процедуры Source - выгребают данные с FTP раздела, формируют отчеты в OO Calc и рассылают их по e-mail. Программа находится трее (или как служба Windows) и активизируется по таймеру. Никаких переводов фокуса на нее нет, да и быть не может - работает уже года 3-4 .... Даже наоборот, помню юзеры просили сделать смену значка когда программа работает - иначе непонятно работает она вообще или нет ... ;)
За теми кто отстал - не возвращаться. (С) Кодекс
vd-vuf
Бывалый
Сообщения: 61
Зарегистрирован: 12 Декабрь 2008, 12:09
Откуда: Верхний Уфалей
Контактная информация:

Re: как открыть окно втихую?

Сообщение vd-vuf »

Игорь Столяров писал(а):
vd-vuf писал(а):не оно само дак фрейм получает фокус
О боже ... Там еще и фрейм ... ?
что то непонял, использовать фрейм это дурной тон?
переделать процессы на сурце это конечно был бы выход
переделать шалблон процесса тоже наверное выход
но все это как то через то самое место :roll:
ситуация похжа на - есть дырявая лодка, вместо того чтобы заделать дыру, черпаем воду.
а вообще конечно спрашивал с надеждой что у когонибудь есть мягкое решение
принудительное передергивание фокуса с помощью api эт тоже про дырявую лодку :)
всем спасиба за советы :)
таки придется что то соображать с шаблоном
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7385
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 14 раз
Поблагодарили: 49 раз

Re: как открыть окно втихую?

Сообщение Игорь Столяров »

Поройтесь в форуме - точно помню, что вопрос переключения фокуса между приложениями обсуждался.
Только немного в другом контесте - при повторном запуске приложения, блокировать запуск и переключать фокус на уже работающую копию приложения.

Ну а насчет переделки процессов - то по Вашей аналогии: нужно иногда вылазить из лодки, и искать другие способы передвижения. Особенно если вместо воды уже давно приходится из лодки вычерпывать песок ... ;)
За теми кто отстал - не возвращаться. (С) Кодекс
Ответить