Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) ДобавитьАтрибут - странные визуальные эффекты (число прочтений - 3700 )
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
ДобавитьАтрибут - странные визуальные эффекты
24. Ноября 2008 :: 13:36
Печать  
В конфигурации должен быть справочник "Пользователи".
Обработка.
Код
Выбрать все
Процедура ПослеОткрытия()

	РФ = СоздатьОбъект("РасширениеФормы");
	РФ.УстановитьФорму(Форма);

	КоординатаХ = 10;
	КоординатаУ = 10;

	ШиринаОтступа = 6;
	ШиринаТекста = 60;
	ШиринаПоляВвода = 280;
	ВысотаАтрибутов = 20;

	тМенеджер = РФ.ДобавитьАтрибут("тМенеджер", 1);
	тМенеджер.УстановитьКоординаты(КоординатаХ, КоординатаХ, ШиринаТекста, ВысотаАтрибутов);
	тМенеджер.Заголовок = "Менеджер:";
	тМенеджер.Выравнивание = "Право";

	ВыбМенеджер = РФ.ДобавитьАтрибут("ВыбМенеджер", 2, "Справочник.Пользователи");
	ВыбМенеджер.УстановитьКоординаты(КоординатаХ + ШиринаТекста + ШиринаОтступа, КоординатаУ, ШиринаПоляВвода, ВысотаАтрибутов);

	РФ.Обновить();

КонецПроцедуры
 



При открытии все нормально:
  

addattr1.jpg ( 26 KB | Загрузки )
addattr1.jpg
Наверх
www  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ДобавитьАтрибут - странные визуальные эффекты
Ответ #1 - 24. Ноября 2008 :: 13:36
Печать  
А вот после выбора пользователя - возникает вот такое:
  

addattr2.jpg ( 35 KB | Загрузки )
addattr2.jpg
Наверх
www  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ДобавитьАтрибут - странные визуальные эффекты
Ответ #2 - 24. Ноября 2008 :: 13:37
Печать  
То есть меняется заголовок текстового окна с "Менеджер:" на "0" и вылетает ошибка.

Что я делаю не так?
  
Наверх
www  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ДобавитьАтрибут - странные визуальные эффекты
Ответ #3 - 24. Ноября 2008 :: 13:41
Печать  
Пробовал следующие версии Формекс: 83, 86, 93.
  
Наверх
www  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ДобавитьАтрибут - странные визуальные эффекты
Ответ #4 - 24. Ноября 2008 :: 13:57
Печать  
Хм. Докладываю.

В новосозданных атрибутах формы уже записана формула. И записано там число 0.
Соответственно, если эта формула лежит на поле с текстом - оно эту формулу пытается выполнить.
Соответственно, даже замена формулы на "" не приводит к нужному результату: ибо результат выполнения "" засунется в текст.

Итоговый код, который выполняет нужное мне действие, выглядит так:

Код
Выбрать все
Процедура ПослеОткрытия()

	РФ = СоздатьОбъект("РасширениеФормы");
	РФ.УстановитьФорму(Форма);

	КоординатаХ = 10;
	КоординатаУ = 10;

	ШиринаОтступа = 6;
	ШиринаТекста = 60;
	ШиринаПоляВвода = 280;
	ВысотаАтрибутов = 20;

	тМенеджер = РФ.ДобавитьАтрибут("тМенеджер", 1);
	тМенеджер.УстановитьКоординаты(КоординатаХ, КоординатаХ, ШиринаТекста, ВысотаАтрибутов);
	тМенеджер.Заголовок = "Менеджер:";
	тМенеджер.Выравнивание = "Право";
	тМенеджер.Формула = """Менеджер:""";

	фВыбМенеджер = РФ.ДобавитьАтрибут("ВыбМенеджер", 2, "Справочник.Пользователи");
	фВыбМенеджер.УстановитьКоординаты(КоординатаХ + ШиринаТекста + ШиринаОтступа, КоординатаУ, ШиринаПоляВвода, ВысотаАтрибутов);
	фВыбМенеджер.Формула = "";

	РФ.Обновить();

КонецПроцедуры
 



Обратите внимание на то, что "Менеджер:" мне приходится писать дважды: как в заголовке, так и в формуле, ибо формула при первом появлении атрибута не срабатывает. Нельзя ли чего-нибудь сделать?
  
Наверх
www  
IP записан
 
noprogrammer
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 465
Зарегистрирован: 16. Июня 2006
Re: ДобавитьАтрибут - странные визуальные эффекты
Ответ #5 - 24. Ноября 2008 :: 16:54
Печать  
Скорее всего проблема в формексе - попробуй более старые версии формекса, прикрепил версию #56
  

FormEx.rar ( 145 KB | Загрузки )
Наверх
wwwICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ДобавитьАтрибут - странные визуальные эффекты
Ответ #6 - 24. Ноября 2008 :: 19:39
Печать  
Насколько я помню, Артур специально добавлял "0" в формулу атрибута, т.к. при нажатии на кнопку, которая является контейнером для АктивИкса, вываливается ошибка: "не найдена процедура/ф-ия "идРеквизитаНаформе"
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: ДобавитьАтрибут - странные визуальные эффекты
Ответ #7 - 25. Ноября 2008 :: 02:22
Печать  
JohnyDeath писал(а) 24. Ноября 2008 :: 19:39:
Насколько я помню, Артур специально добавлял "0" в формулу атрибута, т.к. при нажатии на кнопку, которая является контейнером для АктивИкса, вываливается ошибка: "не найдена процедура/ф-ия "идРеквизитаНаформе"


Может можно в момент создания атрибута, если формула пустая устанавливать в неё значение заголовка?
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ДобавитьАтрибут - странные визуальные эффекты
Ответ #8 - 25. Ноября 2008 :: 04:52
Печать  
JohnyDeath писал(а) 24. Ноября 2008 :: 19:39:
Насколько я помню, Артур специально добавлял "0" в формулу атрибута, т.к. при нажатии на кнопку, которая является контейнером для АктивИкса, вываливается ошибка: "не найдена процедура/ф-ия "идРеквизитаНаформе"

Да, "0" в формуле нужен.
Вот моя же цитата из кода:
Цитата:
// TODO обязательно нужно задать какую-то формулу, но не пустую и без пробельных символов!
// иначе потом нельзя будет изменить формулу


Обход проблемы ИМХО правильный, т.к. ДобавитьАтрибут добавляет достаточно "сырой" атрибут на форму, основные настройки нужно проделать доп.кодом через ФормЕкс.
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ДобавитьАтрибут - странные визуальные эффекты
Ответ #9 - 25. Ноября 2008 :: 04:55
Печать  
Как вариант исправления я думал над след.решением - в ДобавитьАтрибут передается спец.структура, в которой сразу заданы первоначальные настройки - Заголовок, Формула, Координаты и т.д.

Дело в том, что некоторые/многие настройки очень сильно зависят от первоначальной инициализации.
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ДобавитьАтрибут - странные визуальные эффекты
Ответ #10 - 25. Ноября 2008 :: 06:16
Печать  
Или можно создать спец. пользовательский класс 1С++ или встроенный класс ФормЕкс, который и будет решать подобную проблему.
Т.е. создается объект класса, устанавливаются необходимые атрибуты/свойства, далее выполняется метод ДобавитьАтрибут с установкой всех необходимых свойств.

Т.е. примерно так
Код
Выбрать все
НовыйАтрибут = РасширениеФормы.СоздатьНовыйАтрибут(1);
НовыйАтрибут.Заголовок = "Текст";
НовыйАтрибут.Формула = """Текст:""";
НовыйАтрибут.Лево = 10;
... и т.д.
РасширениеФормы.ДобавитьАтрибут(НовыйАтрибут);
//или
НовыйАтрибут.ДобавитьНаФорму(Конт.Форма);
 

  

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


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ДобавитьАтрибут - странные визуальные эффекты
Ответ #11 - 25. Ноября 2008 :: 09:21
Печать  
noprogrammer писал(а) 24. Ноября 2008 :: 16:54:
Скорее всего проблема в формексе - попробуй более старые версии формекса, прикрепил версию #56

Спаисбо, но я не могу использовать формекс с номером меньше, чем 63 - там для меня специально один баг поправили критичный.
  
Наверх
www  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ДобавитьАтрибут - странные визуальные эффекты
Ответ #12 - 25. Ноября 2008 :: 09:23
Печать  
artbear писал(а) 25. Ноября 2008 :: 06:16:
Или можно создать спец. пользовательский класс 1С++ или встроенный класс ФормЕкс, который и будет решать подобную проблему.

Ну в сущности я уже решил пойти именно этим путем.
Поскольку у меня именно класс будет создавать все эти атрибуты формы, то как раз туда очень хорошо это все ляжет. Считаем, что проблема закрыта.

P.S. А еще прикольно, что у созданного таким образом реквизита - непустая подсказка Улыбка)
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ДобавитьАтрибут - странные визуальные эффекты
Ответ #13 - 25. Ноября 2008 :: 09:50
Печать  
fez писал(а) 25. Ноября 2008 :: 09:23:
P.S. А еще прикольно, что у созданного таким образом реквизита - непустая подсказка Улыбка)

Это я в свое время специально постарался Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать