Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Табличное Поле. Как получить координаты колонки? (число прочтений - 922 )
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 247
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Табличное Поле. Как получить координаты колонки?
29. Января 2019 :: 20:31
Печать  
Народ! При попытке привязать к ТП сложную шапку из текстовых полей столкнулся с невозможностью определить "X" и "W" колонки. Может просто затупил? Но кроме ПолучитьГраницыТекущейЯчейки(,,,,) ничего не нашел. Может есть что-то не задокументированное? Help!  Плачущий
  
Наверх
 
IP записан
 
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 247
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: Табличное Поле. Как получить координаты колонки?
Ответ #1 - 30. Января 2019 :: 06:43
Печать  
Сам разобрался. Нашел в отладчике такой параметр РеалШирина:



Код
Выбрать все
--
procedure УстановитьАтрибуты()
	var X,Y,W,H,X1,Y1,Y2,H1,H2,H23;

	Attrib=СоздатьОбъект("АтрибутФормы");
	Attrib.AssignAttrib(Форма,"ГПК");
	Attrib.GetCoordinates(X,Y,W,H);

	Y=Y+H+4;
	H=160;

	Attrib.AssignAttrib(Форма,"ТП_Климат");
	Attrib.SetCoordinates(X-1,Y+H-1,W,);

	// Список Ширин Колонок
	СШК=СоздатьОбъект("СписокЗначений");
	for i=0 to ТП_Климат.Columns.Count()-1 do
		СШК.AddValue(ТП_Климат.Columns.Получить(i).РеалШирина-1);
	enddo;

	Y=Y-1;
	Attrib.AssignAttrib(Форма,"к1");
	Attrib.SetCoordinates(X,Y,СШК.GetValue(1),H);

	X=X+СШК.GetValue(1)+1;
	Attrib.AssignAttrib(Форма,"к23");
	Attrib.SetCoordinates(X,Y,СШК.GetValue(2)+СШК.GetValue(3)+1,);
	Attrib.GetCoordinates(,,,H23);

	Attrib.AssignAttrib(Форма,"к2");
	Attrib.SetCoordinates(X,Y+H23+1,СШК.GetValue(2),H-H23-1);
	Attrib.GetCoordinates(,Y2,,H2);

	X=X+СШК.GetValue(2)+1;
	Attrib.AssignAttrib(Форма,"к3");
	Attrib.SetCoordinates(X,Y2,СШК.GetValue(3),H2);


	X=X+СШК.GetValue(3)+1;
	Attrib.AssignAttrib(Форма,"к45");
	Attrib.SetCoordinates(X,Y,СШК.GetValue(4)+СШК.GetValue(5)+1,H23);

	Attrib.AssignAttrib(Форма,"к4");
	Attrib.SetCoordinates(X,Y2,СШК.GetValue(4),H2);

	X=X+СШК.GetValue(2)+1;
	Attrib.AssignAttrib(Форма,"к5");
	Attrib.SetCoordinates(X,Y2,СШК.GetValue(5),H2);

	X=X+СШК.GetValue(5)+1;
	Attrib.AssignAttrib(Форма,"к6");
	Attrib.SetCoordinates(X,Y,СШК.GetValue(6),H);

	X=X+СШК.GetValue(6)+1;
	Attrib.AssignAttrib(Форма,"к7");
	Attrib.SetCoordinates(X,Y,СШК.GetValue(7),H);

	X=X+СШК.GetValue(7)+1;
	Attrib.AssignAttrib(Форма,"к8");
	Attrib.SetCoordinates(X,Y,СШК.GetValue(8),H);

	X=X+СШК.GetValue(8)+1;
	Attrib.AssignAttrib(Форма,"к91011121314");
	GetValue(12)+СШК.GetValue(13)+СШК.GetValue(14)+5,);
	Attrib.GetCoordinates(,,,H1);


	Attrib.AssignAttrib(Форма,"к910");
	Attrib.SetCoordinates(X,Y+H1+1,СШК.GetValue(9)+СШК.GetValue(10)+1,H-H1-H2-2);

	Attrib.AssignAttrib(Форма,"к9");
	Attrib.SetCoordinates(X,Y2,СШК.GetValue(9),H2);

	X=X+СШК.GetValue(9)+1;
	Attrib.AssignAttrib(Форма,"к10");
	Attrib.SetCoordinates(X,Y2,СШК.GetValue(10),H2);

	X=X+СШК.GetValue(10)+1;
	Attrib.AssignAttrib(Форма,"к1112");
	Attrib.SetCoordinates(X,Y+H1+1,СШК.GetValue(11)+СШК.GetValue(12)+1,H-H1-H2-2);

	Attrib.AssignAttrib(Форма,"к11");
	Attrib.SetCoordinates(X,Y2,СШК.GetValue(11),H2);

	X=X+СШК.GetValue(11)+1;
	Attrib.AssignAttrib(Форма,"к12");
	Attrib.SetCoordinates(X,Y2,СШК.GetValue(12),H2);

	X=X+СШК.GetValue(12)+1;
	Attrib.AssignAttrib(Форма,"к1314");
	Attrib.SetCoordinates(X,Y+H1+1,СШК.GetValue(13)+СШК.GetValue(14)+1,H-H1-H2-2);

	Attrib.AssignAttrib(Форма,"к13");
	Attrib.SetCoordinates(X,Y2,СШК.GetValue(13),H2);

	X=X+СШК.GetValue(13)+1;
	Attrib.AssignAttrib(Форма,"к14");
	Attrib.SetCoordinates(X,Y2,СШК.GetValue(14),H2);

	X=X+СШК.GetValue(14)+1;
	Attrib.AssignAttrib(Форма,"к15");
	Attrib.SetCoordinates(X,Y,СШК.GetValue(15),H);

	X=X+СШК.GetValue(15)+1;
	Attrib.AssignAttrib(Форма,"к16");
	Attrib.SetCoordinates(X,Y,СШК.GetValue(16),H);

	X=X+СШК.GetValue(16)+1;
	Attrib.AssignAttrib(Форма,"к17");
	Attrib.SetCoordinates(X,Y,СШК.GetValue(17),H);

	X=X+СШК.GetValue(17)+1;
	Attrib.AssignAttrib(Форма,"к18");
	Attrib.SetCoordinates(X,Y,СШК.GetValue(18),H);

	X=X+СШК.GetValue(18)+1;
	Attrib.AssignAttrib(Форма,"к19");
	Attrib.SetCoordinates(X,Y,СШК.GetValue(19),H);

	X=X+СШК.GetValue(19)+1;
	Attrib.AssignAttrib(Форма,"к20");
	Attrib.SetCoordinates(X,Y,СШК.GetValue(20),H);

endprocedure // УстановитьАтрибуты()
 


  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


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

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Табличное Поле. Как получить координаты колонки?
Ответ #2 - 30. Января 2019 :: 09:11
Печать  
Прикольно. А как шапку так сделал?
  

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


1C++ rocks!

Сообщений: 247
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: Табличное Поле. Как получить координаты колонки?
Ответ #3 - 30. Января 2019 :: 10:59
Печать  
alyuev писал(а) 30. Января 2019 :: 09:11:
Прикольно. А как шапку так сделал?


Класс "ПанельКнопок". В разработке...
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать