gifts2017

сАвсЭм свободное окно в 8.1

Опубликовал Аркадий Кучер (Abadonna) в раздел Программирование - Работа с интерфейсом

Небольшое шаманство

В 8-ке сделали наконец-то нормальную работу с внутреннимми окнами, в частности, свойство СостояниеОкна, которое можно установить в значение "Свободное", в результате чего получается "плавающее окошко" внутри главного окна.

Небольшим шаманством можно превратить окно в совсем свободное, т.е. иметь его на экране даже тогда, когда главное окно 1С свернуто (см. картинку)

Достигается переопределением родителя отчета(обработки):

SetParent(ХэндлОтчета, GetDesktopWindow) // ставим родительским окном Рабочий стол

При этом владельцем окна (тем, кто отвечает за разрушение) остается главное окно 1С, при его закрытии форма вполне корректно, без ругани, разрушается.

Примечание1: в 7.7 не проходит!

Примечание2: разумеется, не штатно, для ВК или внешней программы

Примечание3: реализовано в http://infostart.ru/public/59436/

 

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Александр Рытов (Арчибальд) 16.12.09 10:41
2. Аркадий Кучер (Abadonna) 16.12.09 10:43
(1) Как бывший научный сотрудник сохранил интерес к исследованиям :D
3. Александр Рытов (Арчибальд) 16.12.09 10:45
Это типа удовлетворения собственного любопытства за чужой счет :o
4. Аркадий Кучер (Abadonna) 16.12.09 10:46
(3) В данном случае - за свой, как раз подруга пришла в тот момент, пришлось в магазин бежать :D :D
5. Александр Рытов (Арчибальд) 16.12.09 10:48
(4) А подруга тем временем окно закрывала ;)
6. Аркадий Кучер (Abadonna) 16.12.09 10:49
(5) Пофладим :D Как раз открывала, она не курит, а было накурено ;)
7. Александр Рытов (Арчибальд) 16.12.09 10:52
(6) Нормальных комментов все равно не дождешься. Не откликается народ на статьи :|
8. Аркадий Кучер (Abadonna) 16.12.09 10:55
(7)
Нормальных комментов все равно не дождешься

– Пардон! – отозвался Фагот, – я извиняюсь, здесь разоблачать нечего, все ясно.
;)
9. dushelov (Душелов) 16.12.09 12:48
Боян ;) Я такое делал в http://infostart.ru/public/18821/
Всплывающее окно сообщений из самой 1С-ки ;)

10. Аркадий Кучер (Abadonna) 16.12.09 12:49
(9) :D А фигли плюс тогда ставишь? ;)
11. dushelov (Душелов) 16.12.09 12:55
(10) Так хорошо, когда к одной проблеме подходим с разных сторон ;)
Ты б еще покопался в сторону, как из того-же окна сообщений получить текст этого самого окна... Я пока не нашел как.
12. Аркадий Кучер (Abadonna) 16.12.09 12:57
(11) Из 7.7 получал, там типа LB_GETSTRING что ли....
Надо будет глянуть на 8-ку...
13. dushelov (Душелов) 16.12.09 13:00
(12) В 8-ке они все в свои классы упаковали... Spy++ и оными ничего не видно...
14. Аркадий Кучер (Abadonna) 16.12.09 13:14
(13) Дык и в 7.7 из окна сообщений spy ничего не видит...
там надо было не то EM_GETLINE, не то LB_GETSTRING...
15. Аркадий Кучер (Abadonna) 16.12.09 15:57
(11)
Ты б еще покопался в сторону, как из того-же окна сообщений получить текст этого самого окна...

Как у отоляринголога получилось:
procedure TMiracleClass.CopyMessWndText;
begin
   if Get1CVersion <> 8 then exit;
  {фокус ввода на окно сообщений}
  SendMessage(hMessWnd, WM_SETFOCUS, 0, 0);
  {CTRL+A выделить все}
  keybd_event(VK_Control, 0, 0, 0);
  keybd_event(65, 0, 0, 0);
  keybd_event(65, 0, KEYEVENTF_KEYUP, 0);
  keybd_event(VK_Control, 0, KEYEVENTF_KEYUP, 0);
   {CTRL+C копировать}
  keybd_event(VK_Control, 0, 0, 0);
  keybd_event(67, 0, 0, 0);
  keybd_event(67, 0, KEYEVENTF_KEYUP, 0);
  keybd_event(VK_Control, 0, KEYEVENTF_KEYUP, 0);
   {сбросили выделение}
  keybd_event(VK_HOME, 0, 0, 0);
  keybd_event(VK_HOME, 0, KEYEVENTF_KEYUP, 0);
end;
...Показать Скрыть
anig99; Душелов; +2 Ответить 1
16. dushelov (Душелов) 16.12.09 16:00
17. Юрий Тимофеев (Tatitutu) 16.12.09 16:32
Примечание1: в 7.7 не проходит!

ну.... несовсем согласен :D Пример сверного окно в Предприятии 7.7
кстати твоя статья сегодня и сподвигла "на подвиг" выложил "гранату"
18. Аркадий Кучер (Abadonna) 16.12.09 16:47
(17) Хитрован ;) У меня отчет - родное окно 1С, а запустить из-под 7.7 можно что хошь, хоть бы и обычные пятнашки (без макросов)
19. Юрий Тимофеев (Tatitutu) 16.12.09 16:49
(18) Ну не без этого... ;)
...знаю , что нельзя в 7.7, но попробовать стоило
20. Аркадий Кучер (Abadonna) 17.12.09 04:15
(9)
Я такое делал в http://infostart.ru/public/18821/

А вот тебе то же окошко, но ни во что не обёрнутое, да еще и StayOnTop ;)
Прикрепленные файлы:
21. dushelov (Душелов) 17.12.09 09:06
(20) :D
Сделаем сменные скины для 1С-ки? ;))
22. Аркадий Кучер (Abadonna) 17.12.09 09:08
(21) :D :D долго ли нам, дуракам? ;)
23. Аркадий Кучер (Abadonna) 23.12.09 11:02
24. Игорь Steelvan (Steelvan) 03.03.13 20:06
По Alt+Tab когда пытаешься переключиться - виснет.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа