Да, не бойся. Посмотрел в шаблонах CapeSoft, то же самое:Shur писал(а):Креатор, спасибо, конечно. А замыкания часом не получится? Лучше не стану.
Код: Выделить всё
system{prop:MessageHook} = address(ds_Message)
Модератор: Дед Пахом
Да, не бойся. Посмотрел в шаблонах CapeSoft, то же самое:Shur писал(а):Креатор, спасибо, конечно. А замыкания часом не получится? Лучше не стану.
Код: Выделить всё
system{prop:MessageHook} = address(ds_Message)
Код: Выделить всё
message('one')
message('two')
message('three')
Какие-то грабли конкретного приложения ...
в том то и дело, никаких локов и т.п. Обычное окошко...Игорь Столяров писал(а): ↑26 Апрель 2017, 22:28Какие-то грабли конкретного приложения ...
Вставил указанный код и проверил - все работает штатно.
Попробуйте сделать тоже самое в каком-нибудь примере из поставки C63.
Как догадка: здесь может быть что-то с LOCKTHREAD / UNLOCKTHREAD - они могут нарушать обработку сообщений.
Поставь между messageingasoftplus писал(а): ↑26 Апрель 2017, 22:44 Но тут - просто дурь какая-то. вообще не понятно, как локализовать.
Код: Выделить всё
If Confirm('Подвердите очистку текста')
?Text{'ResetContents'}
End
...
Say('Пожалуйста, заполните сначала справочник филиалов и укажите текущее подразделение (филиал)')
Код: Выделить всё
Confirm PROCEDURE (MSGText,Caption) ! Declare Procedure
FilesOpened LONG !
Loc:Message Cstring(4000)
Loc:Caption Cstring(1000)
CODE
Hwnd#=0 !{Prop:Handle}
Code#=MB_YesNo+MB_IconQuestion+MB_SystemModal
Loc:Message=Clip(MsgText)
Loop
I#=Instring('|',Loc:Message,1,1)
If I#=0
Break
Else
Loc:Message[I#]='<10>'
End
End
Loc:Caption='Внимание!'
If ~Omitted(2)
Loc:Caption=Caption
End
UnlockThread()
If MessageBox(HWND#,Loc:Message,Loc:Caption,Code#)=IdYes
LockThread()
Return(1)
Else
LockThread()
Return(0)
End
Код: Выделить всё
Say PROCEDURE (MSGtext,Caption) ! Declare Procedure
FilesOpened LONG !
Loc:Message Cstring(4000)
Loc:Caption Cstring(1000)
CODE
Hwnd#=0 ! {Prop:Handle}
Code#=MB_OK+MB_SystemModal
Loc:Message=Clip(MsgText)
Loop
I#=Instring('|',Loc:Message,1,1)
If I#=0
Break
Else
Loc:Message[I#]='<10>'
End
End
Loc:Caption='Внимание!'
If ~Omitted(2)
Loc:Caption=Caption
End
UnlockThread()
If MessageBox(HWND#,Loc:Message,Loc:Caption,Code#).
LockThread()
Код: Выделить всё
if message('Invisible message',,,BUTTON:Yes+BUTTON:No,BUTTON:No) = BUTTON:No
message('I have not seen anything')
else
message('I have seen you')
end
по первому - не совсем уловил мысль.Shur писал(а): ↑27 Апрель 2017, 22:26 Случай интересный.
Если будет время, то можно попробовать с примерно следующим:Ну и доп. вопрос: а нет ли в программе симуляций нажатий клавиш типа PressKey(EnterKey)?Код: Выделить всё
if message('Invisible message',,,BUTTON:Yes+BUTTON:No,BUTTON:No) = BUTTON:No message('I have not seen anything') else message('I have seen you') end