Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Координаты начала рабочего поля (число прочтений - 8387 )
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Координаты начала рабочего поля
10. Декабря 2012 :: 12:42
Печать  
Есть ли метод с помощью которого можно было бы определить координаты начала рабочего стола? По сути это координата Y.
  

_____001.jpg ( 7 KB | Загрузки )
_____001.jpg

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Координаты начала рабочего поля
Ответ #1 - 10. Декабря 2012 :: 12:46
Печать  
ПоложениеОкна не подойдет у объекта окна ?
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Координаты начала рабочего поля
Ответ #2 - 10. Декабря 2012 :: 12:54
Печать  
Нет, не подошло. Вернуло -4, -4. Параметр Форма оставил пустым.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Координаты начала рабочего поля
Ответ #3 - 10. Декабря 2012 :: 12:57
Печать  
А тебе относительно чего размеры вернуть то надо ?
Относительно экрана, в котором 1с-ина открыта ?
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Координаты начала рабочего поля
Ответ #4 - 10. Декабря 2012 :: 12:59
Печать  
Ага. Я вывожу координаты курсора. И вижу, что 0,0 - это в верхнем нижнем левом углу меню File.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Координаты начала рабочего поля
Ответ #5 - 10. Декабря 2012 :: 13:02
Печать  
Соответственно, если узнать, во сколько рядов открыты панели, то можно координату рассчитать (высота панелей стандартная).
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Координаты начала рабочего поля
Ответ #6 - 11. Декабря 2012 :: 02:39
Печать  
Положение окна точно не безглючный метод.
http://www.1cpp.ru/forum/YaBB.pl?num=1338186536/2#2
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Координаты начала рабочего поля
Ответ #7 - 11. Декабря 2012 :: 09:57
Печать  
Вот одна интересная тема http://www.1cpp.ru/forum/YaBB.pl?num=1201856631/5#5, в ней описывается, как можно получить размер рабочего поля. Но начало его координат - пока остался под вопросом.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Координаты начала рабочего поля
Ответ #8 - 11. Декабря 2012 :: 10:15
Печать  
мот тебе к этому привязаться ?
КоординатыОкнаВКоординатыWindows
ЗЫ: это метод от riq_sql.dll
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Координаты начала рабочего поля
Ответ #9 - 11. Декабря 2012 :: 11:15
Печать  
Для чего вся эта петрушка с координатами. Чтобы попробовать реализовать рабочий стол типа как в УНФ в восьмерке.

Всё получается, кроме вот этих самых координат начала рабочего поля. Точнее - нужна высота панелей.
  

_____________001.jpg ( 157 KB | Загрузки )
_____________001.jpg

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Координаты начала рабочего поля
Ответ #10 - 11. Декабря 2012 :: 11:17
Печать  
Код
Выбрать все
Процедура ПриДвиженииМыши(Конт,Сост,Икс,Игрек,ФСО)

	Если ТипЗначенияСтр(Конт)="ГрупповойКонтекст" Тогда Сервис.УстановитьКурсор();Возврат;КонецЕсли;
	Окна=СоздатьОбъект("Окна");
	ШиринаMDI=0;ВысотаMDI=0; Окна.РазмерОкна(,ШиринаMDI,ВысотаMDI,,1);
	Ширина=0;Высота=0; Окна.РазмерОкна(,Ширина,Высота);
	//если последний параметр *НЕ* равен 0, то окно MDI
	//http://www.1cpp.ru/forum/YaBB.pl?num=1201856631/5#5
	НомерТайла = 0;
	Если (Икс<=686)И(Игрек<=794) Тогда
		СмещХ = 65;
		СмещY = 110;
		ЗнамX = Цел((686-СмещХ)/6);
		ЗнамY = Цел((794-110)/9);
		Кол   = Цел(1+(Икс-СмещХ)/ЗнамX);
		Ряд   = Цел((Игрек-СмещY)/ЗнамY);
		НомерТайла=Кол+6*Ряд;
		Состояние(" Конт="+Конт+" № "+НомерТайла+" Х="+Икс+" Y="+Игрек+" "+ЗнамX+" "+ЗнамY+" Кол="+Кол+" Ряд="+Ряд+" Ш_MDI="+ШиринаMDI+" В_MDI="+ВысотаMDI+" Ш_="+Ширина+" В_="+Высота);
	КонецЕсли;
	Если НомерТайла=0 Тогда
		Сервис.УстановитьКурсор();
	Иначе
		Если (НомерТайла=3)
		ИЛИ(НомерТайла=4)
		ИЛИ(НомерТайла=5)
		ИЛИ(НомерТайла=8)
		ИЛИ(НомерТайла=9)
		ИЛИ(НомерТайла=10)
		ИЛИ(НомерТайла=14)
		ИЛИ(НомерТайла=15)
		ИЛИ(НомерТайла=16)
		ИЛИ(НомерТайла=39)
		ИЛИ(НомерТайла=33) Тогда
			Сервис.УстановитьКурсор(14);
		Иначе
			Сервис.УстановитьКурсор();
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры
//*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
Процедура ПриНажатииЛевойКнопки(Конт,Сост,Икс,Игрек,ФСО)
	Если ТипЗначенияСтр(Конт)="ГрупповойКонтекст" Тогда Возврат;КонецЕсли;
	Если НомерТайла = 1 Тогда
	ИначеЕсли НомерТайла = 3 Тогда
		ОткрытьФорму("Документ.ПлатежноеПоручение");
	ИначеЕсли НомерТайла = 4 Тогда
		ОткрытьФорму("Документ.АвансовыйОтчет");
	ИначеЕсли НомерТайла = 5 Тогда
		ОткрытьФорму("Документ.Зарплата");
	ИначеЕсли НомерТайла = 8 Тогда
		ОткрытьФорму("Документ.ПриходнаяНакладная");
	ИначеЕсли (НомерТайла = 9)ИЛИ (НомерТайла = 15)  Тогда
		ОткрытьФорму("Документ.БанковскаяВыписка");
	ИначеЕсли НомерТайла = 10 Тогда
		ОткрытьФорму("Документ.РасходныйКассовый");
	ИначеЕсли НомерТайла = 14 Тогда
		ОткрытьФорму("Документ.ВозвратПоставщику");
	ИначеЕсли НомерТайла = 16 Тогда
		ОткрытьФорму("Документ.ПриходныйКассовый");
	ИначеЕсли НомерТайла = 33 Тогда
		ОткрытьФорму("Документ.РасходнаяНакладная");
	ИначеЕсли НомерТайла = 39 Тогда
		ОткрытьФорму("Документ.Перемещение");
	КонецЕсли;
КонецПроцедуры 


  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Координаты начала рабочего поля
Ответ #11 - 11. Декабря 2012 :: 11:18
Печать  
НомерТайла - глобальная Переменная

Вся проблема в том, что при изменении структуры панелей - увеличения их высоты - мешает правильному определению координаты тайла, т.к. меняется начало рабочей области по высоте относительно меню.
Сейчас в коде реализовано смещение исходя из присутствия одной панели.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Координаты начала рабочего поля
Ответ #12 - 11. Декабря 2012 :: 11:27
Печать  
Красота!
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Координаты начала рабочего поля
Ответ #13 - 11. Декабря 2012 :: 11:37
Печать  
Красиво, на чем нарисовал ?
Вебброузер ?
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Координаты начала рабочего поля
Ответ #14 - 11. Декабря 2012 :: 12:49
Печать  
Ребята! Вы чего! Это ж скриншот из восьмерочной УНФ! Типа вот http://1cbit.ru/images/news/small.png.

Я его вставляю как обои

Сервис.УстановитьОбои(КаталогИБ()+"\Навигация.bmp",1,0,15721438);

А далее мыша обрабатывается кодом выше. И усё...

  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать