Мигание окна при печати

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3745
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

Мигание окна при печати

Сообщение Игорь Столяров » 07 Декабрь 2018, 11:19

Yufil писал(а):
07 Декабрь 2018, 11:14
цель, скорее всего, аккуратно закрыть окошко с термометром
Я конечно извиняюсь, а что для того, что бы закрыть окно - его обязательно нужно сначала показать ?!
«V» значит Вендетта !

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3745
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

Мигание окна при печати

Сообщение Игорь Столяров » 07 Декабрь 2018, 11:29

kreator писал(а):
07 Декабрь 2018, 11:18
Вроде, проблему решает.
Да. Всё волшебно - спасибо ! :)
Только наверно, лучше стирание параметров окна делать после проверки его существования и после его скрытия ?

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

  W &= NULL

  IF NOT SELF.KeepVisible
    IF NOT SELF.Preview &= NULL AND NOT SELF.Report &= NULL AND NOT SELF.SkipPreview
      W &= SYSTEM{PROP:TARGET} + 0
      
      IF NOT W &= NULL       
          TARGET{PROP:Hide} = TRUE
          
          W{prop:Icon} = ''								 ! *** KreatoR ***
          W{prop:NoFrame} = True						 ! *** KreatoR ***
          W{prop:Text} = ''								 ! *** KreatoR ***           
      END
    END
  END
«V» значит Вендетта !

kreator
Ветеран
Сообщения: 3014
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

Мигание окна при печати

Сообщение kreator » 07 Декабрь 2018, 11:59

Игорь Столяров писал(а):
07 Декабрь 2018, 11:29
Только наверно, лучше стирание параметров окна делать после проверки его существования и после его скрытия ?
Ну, да. Согласен. Вдруг, действительно, окна не будет.
А вообще хорошо, что сырцы есть. А не закрытый ящик. У меня таких заплаток вагон и маленькая тележка (утрирую немного). SV реагировать вряд ли будет.
We are hard at work… for you. :)

Yufil
Ветеран движения
Сообщения: 1062
Зарегистрирован: 16 Май 2006, 13:34
Контактная информация:

Мигание окна при печати

Сообщение Yufil » 07 Декабрь 2018, 12:28

Если закрыты все окна треда, тем более с атрибутом MDI, происходит переключение на другой тред.
Вот у меня есть совершенно нелепая функция, в некоторых местах заменяющая стандартный Popup, потому что после выхода
регулярно случается авария или возврат не туда.

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

MyPopup              PROCEDURE  (S)                        ! Declare Procedure
W      WINDOW(''),AT(-100,-100,1,1),GRAY
       END

  CODE
    Open(W)
    Display()
    Accept
      If Event() = Event:OpenWindow
        L#=Popup(S)
        Break
      End
    End
    Close(W)
    0{Prop:Active}=True
    Return(L#)
То же самое - если хочется открыть документ по ShellExecute и более-менее адекватно вернуться обратно. Скорее всего, и здесь аналогичная проблема.

Yufil
Ветеран движения
Сообщения: 1062
Зарегистрирован: 16 Май 2006, 13:34
Контактная информация:

Мигание окна при печати

Сообщение Yufil » 07 Декабрь 2018, 12:35

1. Так и остался непонятным вопрос, что же такое W &= System{Ptop:Target} + 0
2. А зачем все манипуляции с фреймом и иконкой, если окно все равно прячется.
Загнать его за край экрана по SetPosition - и точно не увидим

Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2120
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

Мигание окна при печати

Сообщение Дед Пахом » 07 Декабрь 2018, 12:52

Yufil писал(а):
07 Декабрь 2018, 11:14
Там есть удивительный оператор W &= SYSTEM{PROP:TARGET} + 0 . Что это означает ?
Обычный dereference значения SYSTEM{PROP:TARGET} в ссылку на окно?
С уважением, ДП

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3745
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

Мигание окна при печати

Сообщение Игорь Столяров » 07 Декабрь 2018, 13:15

Yufil писал(а):
07 Декабрь 2018, 12:35
что же такое W &= System{Ptop:Target} + 0
Как я понимаю - все проперти возвращают тип STRING. Поэтому при присвоении адреса "+ 0" это неявное преобразование в LONG.
Yufil писал(а):
07 Декабрь 2018, 12:35
Загнать его за край экрана по SetPosition
Сейчас отрицательные координаты работают. Но кто знает, что придёт в голову завтра разработчикам Clarion ?
Как это будет работать при включённом скроллинге внутри APPFRAME или при расширении рабочего стола на 2 монитора ?
И т.д. Слишком много вопросов … :(
«V» значит Вендетта !

Yufil
Ветеран движения
Сообщения: 1062
Зарегистрирован: 16 Май 2006, 13:34
Контактная информация:

Мигание окна при печати

Сообщение Yufil » 07 Декабрь 2018, 13:46

Возможно, лучше всего просто отключить mdi для Preview и термометра.

kreator
Ветеран
Сообщения: 3014
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

Мигание окна при печати

Сообщение kreator » 07 Декабрь 2018, 14:29

Yufil писал(а):
07 Декабрь 2018, 13:46
Возможно, лучше всего просто отключить mdi для Preview и термометра.
Они и так не mdi.
Yufil писал(а):
07 Декабрь 2018, 12:35
2. А зачем все манипуляции с фреймом и иконкой, если окно все равно прячется.
Пока окно схайдено, проблем нет. Но чтобы сделать на него таргет, приходиться делать анхайд. И в этот момент оно становиться видным. Причём принудительная установка размеров в ноль ни к чему не приводит, поскольку у окна есть текст, иконка и рамка. Их и надо убрать. Я пока не пойму - почему без этих костылей при выходе из превью фокус улетает на другое приложение? В описании окна ничего странного не наблюдаю. Где-то в тексте prop:Active для приложения в 0 выставляется? Маловероятно.
We are hard at work… for you. :)

gopstop2007
Ветеран
Сообщения: 1155
Зарегистрирован: 25 Март 2009, 21:55

Мигание окна при печати

Сообщение gopstop2007 » 07 Декабрь 2018, 19:06

kreator писал(а):
07 Декабрь 2018, 14:29
Я пока не пойму - почему без этих костылей при выходе из превью фокус улетает на другое приложение?
может потому, что в W (W &= System{Ptop:Target} + 0) записывается номер Tread-а окна в винде, а не апп
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп

kreator
Ветеран
Сообщения: 3014
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

Мигание окна при печати

Сообщение kreator » 09 Декабрь 2018, 14:47

gopstop2007 писал(а):
07 Декабрь 2018, 19:06
kreator писал(а):
07 Декабрь 2018, 14:29
Я пока не пойму - почему без этих костылей при выходе из превью фокус улетает на другое приложение?
может потому, что в W (W &= System{Ptop:Target} + 0) записывается номер Tread-а окна в винде, а не апп
Разбираться неохота. Вообще весь текст в этом методе представляется каким-то костылём :mrgreen: .
We are hard at work… for you. :)

Ответить