Здравствуйте!
В листе говорили о глюках в потоках.
Столкнулся с похожими симптомами. В программе на 5.5H, ШВС сделал тулбокс, на котором по мере открытия окон показываются пиктограмма, краткая подпись и тип, идентифицирующий запись в окне. Активируется набор для верхнего окна каждого потока. Переключение потоков осуществляется щелчком мышки по пиктограммке. Плюс добавлены кнопки последовательного переключения потоков вперед/назад и закрытие всех потоков.
Переключение реализуется обычным способом через settarget и 0{PROP:Active}.
Начинаю интенсивно жать на пиктограммки и кнопки - уже почти два часа жму )
Если окна не максимизированы, то вроде все отрабатывает нормально. Стоит начать играть с максимизацией - получаю через некоторое время либо сообщение о неоткрытом файле, или неопределенной переменной, либо виндовый даун (тестится под Win98).
Вопрос такой. Действительно ли в клашином менеджере потоков глючит именно максимизация окон (хорошо бы дело было в ошибке с моей стороны). А если да, то значит ли это, что от максимизации придется отказаться?
Сорри, если это уже обсуждалось, в архивах ответа не нашел.
С уважением,
Вячеслав Черников support@finsoft.ryazan.ru
Написал: ClaList(2)
потоки
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Да, игра с максимизированными окнами - слабое место
менеджера потоков C55.
Есть несколько советов разных авторов:
1. Закомментировать все вызовы RefreshWindow в обработке события
EVENT:GainFocus кроме первого в секции IF NOT WindowInitialized.
2. Использовать в обработке события EVENT:GainFocus, для определения
активности данного окна, код {Prop:Active}.
3. Убрать у окон кнопку максимизации и возможность изменять размеры.
4. Откатиться на C55.D
Был еще совет от кого-то из коллег в нашей рассылке -
эмулировать максимизацию окна ручной подгонкой его размера
под размер клиентской области фрейма.
Я частично использую совет 3. Хотя больших проблем именно
из-за этого у меня нет - пользователи привыкли работать
с максимизированными окнами и без особой нужды не переключают
их туды-сюды.
=============================
С уважением, Олег А. Руденко.
Oleg_Rudenko@mail.ru
Oleg_Rudenko@mail333.com
Библиотека DynaLib
http://dynalib.narod.ru
(Добавление)
Здравствуйте, Олег!
Спасибо за информацию, особенно про GainFocus. У меня еще своя ошибка
закралась - не везде отсемафорил работу с глобальными очередями, хранящими
списки открытых окон и потоков. Сейчас вроде более менее нормально работает,
но это при переключениях на одном компе (даже очень быстром ).
Работа с максимизированными окнами - это пожелание заказчика. Они привыкли
так на 1С. Там интерфейс весьма приличный, вот и приходится тратить кучу
времени, чтобы перекрыть его функциональность.
С уважением,
Вячеслав Черников
(Добавление)
передавать сигналы из задачи в задачу
---------------------------------------
C уважением,
Юрий Философов,
Главный программист
Корпорация "Диполь", Саратов
E-mail yufil@tacis-dipol.ru (служ)
yufil@mail.ru (дом)
ICQ# 75924439
Написал: ClaList(2)
менеджера потоков C55.
Есть несколько советов разных авторов:
1. Закомментировать все вызовы RefreshWindow в обработке события
EVENT:GainFocus кроме первого в секции IF NOT WindowInitialized.
2. Использовать в обработке события EVENT:GainFocus, для определения
активности данного окна, код {Prop:Active}.
3. Убрать у окон кнопку максимизации и возможность изменять размеры.
4. Откатиться на C55.D
Был еще совет от кого-то из коллег в нашей рассылке -
эмулировать максимизацию окна ручной подгонкой его размера
под размер клиентской области фрейма.
Я частично использую совет 3. Хотя больших проблем именно
из-за этого у меня нет - пользователи привыкли работать
с максимизированными окнами и без особой нужды не переключают
их туды-сюды.
=============================
С уважением, Олег А. Руденко.
Oleg_Rudenko@mail.ru
Oleg_Rudenko@mail333.com
Библиотека DynaLib
http://dynalib.narod.ru
(Добавление)
Здравствуйте, Олег!
Спасибо за информацию, особенно про GainFocus. У меня еще своя ошибка
закралась - не везде отсемафорил работу с глобальными очередями, хранящими
списки открытых окон и потоков. Сейчас вроде более менее нормально работает,
но это при переключениях на одном компе (даже очень быстром ).
Работа с максимизированными окнами - это пожелание заказчика. Они привыкли
так на 1С. Там интерфейс весьма приличный, вот и приходится тратить кучу
времени, чтобы перекрыть его функциональность.
С уважением,
Вячеслав Черников
(Добавление)
Не только максимизированными. Ещё как минимум содержащими обработку по таймеру и обработку OCX . А без таймера не всегда получаетсяДа, игра с максимизированными окнами - слабое место
менеджера потоков C55.
передавать сигналы из задачи в задачу
---------------------------------------
C уважением,
Юрий Философов,
Главный программист
Корпорация "Диполь", Саратов
E-mail yufil@tacis-dipol.ru (служ)
yufil@mail.ru (дом)
ICQ# 75924439
Написал: ClaList(2)