Переключение на Главную Страницу Страницы: [1] 2 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) FormEx+ПлавающаяФорма (число прочтений - 10553 )
Burlak
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 65
Зарегистрирован: 28. Апреля 2008
FormEx+ПлавающаяФорма
14. Ноября 2008 :: 04:33
Печать  
1. Можно ли в настоящее время применять её в штатно работающих системах?
2. Можно ли запретить клиенту менять размеры формы обработки (иными словами, можно ли перевести загрузенную форму в а-ля плавающее состояние). Но не хочется запрещать клиенту работать и с другими формами на главном окне (модальнось пока использовать не хочется).
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: FormEx+ПлавающаяФорма
Ответ #1 - 14. Ноября 2008 :: 06:50
Печать  
http://www.1cpp.ru/forum/YaBB.pl?num=1177066803/2#1
с тех пор ничего не менялось в этом направлении  Нерешительный
  
Наверх
 
IP записан
 
Burlak
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 65
Зарегистрирован: 28. Апреля 2008
Re: FormEx+ПлавающаяФорма
Ответ #2 - 14. Ноября 2008 :: 07:23
Печать  
А как же это - http://www.1cpp.ru/forum/YaBB.pl?num=1218198554
Сейчас тестирую, пока все штатно.
Из формы обработки закружаю плавающую форму документа "ЗаказНаВыпуск", двойным щелчком по строке одного табличного поля, потом закружаю плавающую форму документа "ГотоваяПродукция", двойным щелчком по строке другого табличного поля.
И форма и плавающие формы, пока всё штатно.
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: FormEx+ПлавающаяФорма
Ответ #3 - 14. Ноября 2008 :: 07:36
Печать  
to Burlak
Вся беда в том, что при закрытии плавающей формы окно не уничтожается.
Поэтому проблемы очень даже возможны.
  
Наверх
ICQ  
IP записан
 
Burlak
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 65
Зарегистрирован: 28. Апреля 2008
Re: FormEx+ПлавающаяФорма
Ответ #4 - 14. Ноября 2008 :: 08:07
Печать  
to Vip.
Пока вот, что нарыл:
Запустил и форму обработки как плавающюю. Три плавающих формы на экране. Внешне всё закрывается и открывается. Но в модуле формы обработки использую обработку внешнего события, и  результат -
Процедура не обнаружена: ОбработкаВнешнегоСобытия/ExternEventProcessing
А если, то что Вы утверждаете верно, то очень жаль и придется откатиться (надолго?)
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: FormEx+ПлавающаяФорма
Ответ #5 - 14. Ноября 2008 :: 08:27
Печать  
Цитата:
А если, то что Вы утверждаете верно, то очень жаль и придется откатиться (надолго?)

Это верно.
А надолго? Это к АЛьФу Улыбка
  
Наверх
ICQ  
IP записан
 
Burlak
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 65
Зарегистрирован: 28. Апреля 2008
Re: FormEx+ПлавающаяФорма
Ответ #6 - 14. Ноября 2008 :: 08:50
Печать  
to Vip.
Спасибо за предупреждение. Ещё раз - жаль.
Откатился назад - из формы обработки документы вызываю как модальные, но только один из двух.
  
Наверх
 
IP записан
 
Burlak
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 65
Зарегистрирован: 28. Апреля 2008
Re: FormEx+ПлавающаяФорма
Ответ #7 - 17. Ноября 2008 :: 05:28
Печать  
Как программно можно увидеть, что окно после закрытия плавающей формы не уничтожено?
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: FormEx+ПлавающаяФорма
Ответ #8 - 17. Ноября 2008 :: 05:40
Печать  
Burlak писал(а) 17. Ноября 2008 :: 05:28:
Как программно можно увидеть, что окно после закрытия плавающей формы не уничтожено?

Средствами 1С никак.
  
Наверх
ICQ  
IP записан
 
MrDen
Junior Member
**
Отсутствует



Сообщений: 50
Местоположение: Краснодар
Зарегистрирован: 19. Ноября 2008
Пол: Мужской
Re: FormEx+ПлавающаяФорма
Ответ #9 - 19. Ноября 2008 :: 18:05
Печать  
По поводу Процедура не обнаружена: ОбработкаВнешнегоСобытия/ExternEventProcessing решить можно переходом окна формы в активное (типа на передний план)
Причем та же ошибка будет если в окне сообщений установлен курсор даже при окне на переднем плане
Если закрывать плавающее окно то можно предварительно получив его хендл после разрушить

Все делалось на Win32Api
Процедура ПослеОткрытия()
// получаем хэндл окна
Попытка
Wrap = CreateObject("DynamicWrapper");
Wrap.Register("USER32.DLL", "GetForegroundWindow", "f=s", "r=l");
Wrap.Register("USER32.DLL", "GetWindow", "i=ll","f=s", "r=l");
Wrap.Register("USER32.DLL", "BringWindowToTop", "i=l", "f=s", "r=l");
Wrap.Register("USER32.DLL", "FindWindow", "i=rr", "f=s", "r=l");
Wrap.Register("USER32.DLL", "DestroyWindow", "i=l", "f=s", "r=l");
HWND = Wrap.GetForegroundWindow();
HWND = Wrap.GetWindow(HWND,5);
HWND = Wrap.GetWindow(HWND,5);
Исключение
HWND = 0;
Wrap = 0;
КонецПопытки;

// перед отработкой внешнего события
Если HWND>0 Тогда
  HWNDPrev = Wrap.BringWindowToTop(HWND);
КонецЕсли;
// для плавающих окон
HWND1 = Wrap.FindWindow(КлассОкна,"");
Wrap.DestroyWindow(HWND1);

Есть способ попроще Обработку внешнего события также прописать в глобальнике и по событию открывать форму
« Последняя редакция: 19. Ноября 2008 :: 21:55 - MrDen »  
Наверх
ICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: FormEx+ПлавающаяФорма
Ответ #10 - 19. Ноября 2008 :: 18:30
Печать  
Цитата:
Есть способ попроще

Есть еще попроще Улыбка
Хэндл окна РасширениеФормы::Дескриптор.
BringWindowToTop это Окна::НаПереднийПлан()

А насчет DestroyWindow() ты прав.
Сам этим пользуюсь.

АЛьФ вообще то собирался полностью переделать ПлавающуюФорму, но видно руки не доходят.
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: FormEx+ПлавающаяФорма
Ответ #11 - 20. Ноября 2008 :: 10:59
Печать  
Так с использованием ДестройВиндоу получается, что можно юзать ПлавающуюФорму?
У меня давно руки чешутся ее заюзать, но останавливает то, что есть разные баги, правда, их список не помню.

Кто-нибудь может просветить подробнее - можно юзать или нет?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: FormEx+ПлавающаяФорма
Ответ #12 - 20. Ноября 2008 :: 11:44
Печать  
artbear писал(а) 20. Ноября 2008 :: 10:59:
Так с использованием ДестройВиндоу получается, что можно юзать ПлавающуюФорму?
У меня давно руки чешутся ее заюзать, но останавливает то, что есть разные баги, правда, их список не помню.

Кто-нибудь может просветить подробнее - можно юзать или нет?

Баги были, какие, тоже не помню. Избавлялся при помощи ДестройВиндоу в ПослеЗакрытия.
Сейчас проверил, ПлавающаяФорма в ПослеЗакрытия даже не попадает. А раньше вроде попадала.
И работает вроде без проблем.
Может случилось чудо? Тайная жизнь микросхем? Улыбка

Давай погоняем этот функционал. Буду рад, если все будет нормально.
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: FormEx+ПлавающаяФорма
Ответ #13 - 20. Ноября 2008 :: 12:17
Печать  
vip, а как обстоять дела с ПрисоединитьФорму, ты же вроде юзаешь активно ?

ЗЫ Я слегка попутал ранее, руки чешутся как раз на ПрисоединитьФорму Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: FormEx+ПлавающаяФорма
Ответ #14 - 20. Ноября 2008 :: 12:32
Печать  
artbear писал(а) 20. Ноября 2008 :: 12:17:
vip, а как обстоять дела с ПрисоединитьФорму, ты же вроде юзаешь активно ?

ЗЫ Я слегка попутал ранее, руки чешутся как раз на ПрисоединитьФорму Улыбка

Нормально дела обстоят.
Просто надо запретить закрытие окна ОБЪЕДИНЕННОЙ формы, если фокус в момент закрытия стоит на ПРИСОЕДИНЕННОЙ форме.
Может, можно этот момент внутри FormEx обрабатывать?

Ну и с начальным положением сплитера нехорошо. Оно жестко зашито внутри FormEx. Справляюсь эмуляцией мыши (вроде мышей двинул сплитер). Вот тут желательно добавить возможность программно изменять положение сплитера.

А так функционал очень хорош. Больше замечаний нет.
Хотя мои методы обхода косяков, это чисто мои методы Улыбка
Хотелось бы, чтобы этих багов не было.
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 
ОтправитьПечать