![]() |
![]() |
|
ширина и высота колонок и строк в ТЗ на форме | ☑ | ||
---|---|---|---|---|
0
inkvizitr
13.11.18
✎
09:29
|
Возможно ли задать ширину и высоту колонок и строк в ТЗ на форме? тут решился написать для себя обработку сапер, немного бывает свободного времени, не пойму как программно задать размеры колонок и строк, ниже текст кода
&НаКлиенте Процедура Играть(Команда) КолонкиИгровогоПоля = Колонки; СтрокиИгровогоПоля = Строки; БомбыНаИгровомПоле = КолБомб; СгенерироватьИгровоеПоле(КолонкиИгровогоПоля, СтрокиИгровогоПоля, БомбыНаИгровомПоле); КонецПроцедуры &НаСервере Процедура СгенерироватьИгровоеПоле(Колонки, Строки, Бомбы) ТЗИгровогоПоля = СформируемИгровоеПолеСБомбами(Колонки, Строки, Бомбы); ПоместитьТЗИгровогоПоляВРеквизитФормы(ЭтаФорма, "ИгровоеПоле", ТЗИгровогоПоля); ЗначениеВРеквизитФормы(ТЗИгровогоПоля, "ИгровоеПоле"); КонецПроцедуры Функция СформируемИгровоеПолеСБомбами(Колонки, Строки, Бомбы) ТЗИгровогоПоля = Новый ТаблицаЗначений; // Создаю колонки игрового поля Для ИндексКолонки = 1 По Строки Цикл ТЗИгровогоПоля.Колонки.Добавить("К" + ИндексКолонки); КонецЦикла; // Создаю строки игрового поля Для ИндексСтрока = 0 По Строки Цикл НоваяСтрока = ТЗИгровогоПоля.Добавить(); Для ИндексКолонки = 0 ПО Колонки - 1 Цикл НоваяСтрока.Установить(ИндексКолонки, 0); КонецЦикла; КонецЦикла; // Подключаю генератор ГенСлучЧисел = Новый ГенераторСлучайныхЧисел; КолВоБомб = 10; РазмерПоля_Х = Строки; РазмерПоля_У = Колонки; // Разбрасываю по полю бомбы СчГенБомб = 1; Пока СчГенБомб <= КолВоБомб Цикл // Ищим свободную ячейку и вставляем бомбу Пока Истина Цикл БомбаПоХ = ГенСлучЧисел.СлучайноеЧисло(0, РазмерПоля_Х - 1); БомбаПоУ = ГенСлучЧисел.СлучайноеЧисло(0, РазмерПоля_У - 1); Если ТЗИгровогоПоля[БомбаПоХ][БомбаПоУ] = 0 Тогда ТЗИгровогоПоля[БомбаПоХ][БомбаПоУ] = Истина; СчГенБомб = СчГенБомб + 1; Прервать; // Бомбу вставили, цель достигнута КонецЕсли; КонецЦикла; КонецЦикла; Возврат ТЗИгровогоПоля; КонецФункции &НаСервере Процедура ПоместитьТЗИгровогоПоляВРеквизитФормы(Форма, ИмяРеквизитаФормы, ТаблицаЗначений) МассивДобавляемыхРеквизитов = Новый Массив; МассивДобавляемыхПолей = Новый Массив; Для каждого Колонка Из ТаблицаЗначений.Колонки Цикл Колонка.Ширина = 2; МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения,ИмяРеквизитаФормы , Колонка.Заголовок)); НоваяКолонка = Элементы.Добавить(Колонка.Имя, Тип("ПолеФормы"), Элементы[ИмяРеквизитаФормы]); МассивДобавляемыхПолей.Добавить(НоваяКолонка); КонецЦикла; ИзменитьРеквизиты(МассивДобавляемыхРеквизитов); Для каждого ПолеФормы Из МассивДобавляемыхПолей Цикл ПолеФормы.Заголовок = ПолеФормы.Имя; ПолеФормы.ПутьКДанным = ИмяРеквизитаФормы +"."+ПолеФормы.Имя; ПолеФормы.Вид = ВидПоляФормы.ПолеВвода; ПолеФормы.Ширина = 2; КонецЦикла; КонецПроцедуры |
|||
1
inkvizitr
13.11.18
✎
09:49
|
Разобрался, спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |