Мигание окна при печати
Добавлено: 07 Декабрь 2018, 11:19
Я конечно извиняюсь, а что для того, что бы закрыть окно - его обязательно нужно сначала показать ?!
Место общения программистов, форум разработчиков БД на Clarion
https://www.forum.clarionlife.net/
Я конечно извиняюсь, а что для того, что бы закрыть окно - его обязательно нужно сначала показать ?!
Да. Всё волшебно - спасибо !
Код: Выделить всё
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
Ну, да. Согласен. Вдруг, действительно, окна не будет.Игорь Столяров писал(а): 07 Декабрь 2018, 11:29 Только наверно, лучше стирание параметров окна делать после проверки его существования и после его скрытия ?
Код: Выделить всё
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#)
Обычный dereference значения SYSTEM{PROP:TARGET} в ссылку на окно?Yufil писал(а): 07 Декабрь 2018, 11:14Там есть удивительный оператор W &= SYSTEM{PROP:TARGET} + 0 . Что это означает ?
Как я понимаю - все проперти возвращают тип STRING. Поэтому при присвоении адреса "+ 0" это неявное преобразование в LONG.
Сейчас отрицательные координаты работают. Но кто знает, что придёт в голову завтра разработчикам Clarion ?
Они и так не mdi.Yufil писал(а): 07 Декабрь 2018, 13:46 Возможно, лучше всего просто отключить mdi для Preview и термометра.
Пока окно схайдено, проблем нет. Но чтобы сделать на него таргет, приходиться делать анхайд. И в этот момент оно становиться видным. Причём принудительная установка размеров в ноль ни к чему не приводит, поскольку у окна есть текст, иконка и рамка. Их и надо убрать. Я пока не пойму - почему без этих костылей при выходе из превью фокус улетает на другое приложение? В описании окна ничего странного не наблюдаю. Где-то в тексте prop:Active для приложения в 0 выставляется? Маловероятно.Yufil писал(а): 07 Декабрь 2018, 12:35 2. А зачем все манипуляции с фреймом и иконкой, если окно все равно прячется.
может потому, что в W (W &= System{Ptop:Target} + 0) записывается номер Tread-а окна в винде, а не аппkreator писал(а): 07 Декабрь 2018, 14:29 Я пока не пойму - почему без этих костылей при выходе из превью фокус улетает на другое приложение?
Разбираться неохота. Вообще весь текст в этом методе представляется каким-то костылёмgopstop2007 писал(а): 07 Декабрь 2018, 19:06может потому, что в W (W &= System{Ptop:Target} + 0) записывается номер Tread-а окна в винде, а не аппkreator писал(а): 07 Декабрь 2018, 14:29 Я пока не пойму - почему без этих костылей при выходе из превью фокус улетает на другое приложение?