Панель.УстановитьЗакругленныеУглы (Panel.SetRoundedShape) Метод

Синтаксис

УстановитьЗакругленныеУглы(<Радиус>)

Параметры

Радиус (обязательный)
Тип: Число.
Радиус закругления углов панели.

Возвращаемое значение

Описание

Устанавливает закругленные углы для панели с радиусом, переданном в параметре.

Метод позволяет создать панель с видом геометрических фигур круга, элипса, закругленного квадрата. Фигуры можно использовать как персонажи для небольших игр, например пинг-понга.

Примечание

Пример

Мячик.УстановитьЗакругленныеУглы(26);
Полный пример кода

Копировать     Выделить всё

Перем Ф, Форма1, ИгровоеПоле, Таймер1, Кнопка2, cx, cy, РегуляторВверхВниз1; Перем Икс, Ракетка, Мячик, ДвижениеВверх, ДвижениеЛево; Процедура Таймер1_ПриСрабатыванииТаймера() Экспорт // Обеспечим корректное закрытие формы. Если Не(Форма1.Отображать) Тогда ЗавершитьРаботу(10); КонецЕсли; Если ДвижениеЛево Тогда cx = cx - РегуляторВверхВниз1.Значение; Иначе cx = cx + РегуляторВверхВниз1.Значение; КонецЕсли; Если ДвижениеВверх Тогда cy = cy - РегуляторВверхВниз1.Значение; Иначе cy = cy + РегуляторВверхВниз1.Значение; КонецЕсли; Мячик.Лево = cx; Мячик.Верх = cy; // Зададим условия движения мячика. Если (Мячик.Top > ИгровоеПоле.КлиентВысота - Мячик.Высота - Ракетка.Высота) Тогда // Здесь должен быть или отскок, или пролёт вниз поля с завершением игры. Если (((Мячик.Лево + (Мячик.Ширина / 2)) < Ракетка.Лево) или ((Мячик.Лево) > (Ракетка.Право - (Мячик.Ширина / 2)))) Тогда Таймер1.Остановить(); ОкноСообщений1 = Ф.ОкноСообщений(); ОкноСообщений1.Заголовок = ""; ОкноСообщений1.Текст = "Мяч пропущен."; ОкноСообщений1.Значок = Ф.ЗначокОкнаСообщений.Восклицание; ОкноСообщений1.Кнопки = Ф.КнопкиОкнаСообщений.ОК; ОкноСообщений1.Показать(); cx = 15; cy = 3; Мячик.Лево = cx; Мячик.Верх = cy; Кнопка2_Нажатие(); Иначе // Меняем передвижение мячика по игрек на противоположное. ДвижениеВверх = Истина; КонецЕсли; КонецЕсли; Если (Мячик.Право > ИгровоеПоле.КлиентШирина) Тогда ДвижениеЛево = Истина; КонецЕсли; Если (Мячик.Лево < 0) Тогда ДвижениеЛево = Ложь; КонецЕсли; Если (Мячик.Верх < 0) Тогда ДвижениеВверх = Ложь; КонецЕсли; КонецПроцедуры Процедура Форма1_КлавишаВниз() Экспорт Если Ф.АргументыСобытия.КодКлавиши = 80 Тогда Кнопка2_Нажатие(); КонецЕсли; КонецПроцедуры Процедура Форма1_РазмерИзменен() Экспорт Ракетка.Положение = Ф.Точка(Икс, ИгровоеПоле.Низ - 15); КонецПроцедуры Функция Кнопка1_Нажатие() Экспорт ДвижениеВверх = Ложь; cx = 15; cy = 3; Мячик.Лево = cx; Мячик.Верх = cy; Кнопка2.Текст = "Пауза(P)"; Кнопка2_Нажатие(); КонецФункции Функция Кнопка2_Нажатие() Экспорт Если Кнопка2.Текст = "Пуск(P)" Тогда Таймер1.Начать(); Кнопка2.Текст = "Пауза(P)"; Иначе Таймер1.Остановить(); Кнопка2.Текст = "Пуск(P)"; КонецЕсли; КонецФункции Процедура РегуляторВверхВниз1_ЗначениеИзменено() Экспорт Таймер1.Интервал = РегуляторВверхВниз1.Значение; КонецПроцедуры Процедура ИгровоеПоле_ПриПеремещенииМыши() Экспорт Икс = Ф.АргументыСобытия.Икс - (Ракетка.Ширина / 2); Ракетка.Положение = Ф.Точка(Икс, ИгровоеПоле.Низ - 15); КонецПроцедуры ПодключитьВнешнююКомпоненту("C:\444\111\OneScriptForms\OneScriptForms\bin\Debug\OneScriptForms.dll"); Ф = Новый ФормыДляОдноСкрипта(); Форма1 = Ф.Форма(); Форма1.НачальноеПоложение = Ф.НачальноеПоложениеФормы.ЦентрЭкрана; Форма1.Размер = Ф.Размер(485, 300); Форма1.Текст = "Понг (OneScript)"; Форма1.КлавишаВниз = Ф.Действие(ЭтотОбъект, "Форма1_КлавишаВниз"); Форма1.РазмерИзменен = Ф.Действие(ЭтотОбъект, "Форма1_РазмерИзменен"); Форма1.Отображать = Истина; Форма1.Показать(); Форма1.Активизировать(); Икс = 0; cx = 15; cy = 3; ДвижениеВверх = Ложь; ДвижениеЛево = Ложь; Таймер1 = Ф.Таймер(); Таймер1.Интервал = 3; Таймер1.ПриСрабатыванииТаймера = Ф.Действие(ЭтотОбъект, "Таймер1_ПриСрабатыванииТаймера"); Форма1.НачатьОбновление(); ИгровоеПоле = Форма1.ЭлементыУправления.Добавить(Ф.Панель()); ИгровоеПоле.СтильГраницы = Ф.СтильГраницы.Трехмерная; ИгровоеПоле.ЦветФона = Ф.Цвет("Черный"); ИгровоеПоле.Стыковка = Ф.СтильСтыковки.Заполнение; ИгровоеПоле.ПриПеремещенииМыши = Ф.Действие(ЭтотОбъект, "ИгровоеПоле_ПриПеремещенииМыши"); Панель2 = Форма1.ЭлементыУправления.Добавить(Ф.Панель()); Панель2.Стыковка = Ф.СтильСтыковки.Право; Панель2.Ширина = 105; Ракетка = ИгровоеПоле.ЭлементыУправления.Добавить(Ф.Панель()); // Это ракетка. Ракетка.Размер = Ф.Размер(100, 10); Ракетка.Положение = Ф.Точка(20, 20); Ракетка.ЦветФона = Ф.Цвет("Красный"); Ракетка.УстановитьЗакругленныеУглы(10); Мячик = ИгровоеПоле.ЭлементыУправления.Добавить(Ф.Панель()); // Это мячик. Мячик.Размер = Ф.Размер(26, 26); Мячик.Положение = Ф.Точка(20, 20); Мячик.ЦветФона = Ф.Цвет("Белый"); Мячик.УстановитьЗакругленныеУглы(26); Кнопка1 = Панель2.ЭлементыУправления.Добавить(Ф.Кнопка()); Кнопка1.Положение = Ф.Точка(10, 20); Кнопка1.Ширина = 90; Кнопка1.Текст = "Новая игра"; Кнопка1.Нажатие = Ф.Действие(ЭтотОбъект, "Кнопка1_Нажатие"); Кнопка1.КлавишаВниз = Ф.Действие(ЭтотОбъект, "Форма1_КлавишаВниз"); Кнопка2 = Панель2.ЭлементыУправления.Добавить(Ф.Кнопка()); Кнопка2.Ниже(Кнопка1, 15); Кнопка2.Ширина = 90; Кнопка2.Текст = "Пауза(P)"; Кнопка2.Нажатие = Ф.Действие(ЭтотОбъект, "Кнопка2_Нажатие"); Кнопка2.КлавишаВниз = Ф.Действие(ЭтотОбъект, "Форма1_КлавишаВниз"); Надпись1 = Панель2.ЭлементыУправления.Добавить(Ф.Надпись()); Надпись1.Текст = "Уровень:"; Надпись1.Размер = Ф.Размер(75, 20); Надпись1.Ниже(Кнопка2, 20); Надпись1.Якорь = Ф.СтилиПривязки.Право + Ф.СтилиПривязки.Верх; РегуляторВверхВниз1 = Панель2.ЭлементыУправления.Добавить(Ф.РегуляторВверхВниз()); РегуляторВверхВниз1.Ниже(Надпись1, 5); РегуляторВверхВниз1.Ширина = Кнопка2.Ширина; РегуляторВверхВниз1.Минимум = 1; РегуляторВверхВниз1.Максимум = 10; РегуляторВверхВниз1.ЗначениеИзменено = Ф.Действие(ЭтотОбъект, "РегуляторВверхВниз1_ЗначениеИзменено"); РегуляторВверхВниз1.Значение = 3; РегуляторВверхВниз1.Якорь = Ф.СтилиПривязки.Право + Ф.СтилиПривязки.Верх; РегуляторВверхВниз1.КлавишаВниз = Ф.Действие(ЭтотОбъект, "Форма1_КлавишаВниз"); Форма1.ЗавершитьОбновление(); Панель2.Актуализировать(); Ракетка.Положение = Ф.Точка(Икс, ИгровоеПоле.Низ - 15); Таймер1.Начать(); Ф.ЗапуститьОбработкуСобытий();

Тестовый код

Копировать     Выделить всё

Перем Ф, Форма1, ИгровоеПоле, Таймер1, Кнопка2, cx, cy, РегуляторВверхВниз1; Перем Икс, Ракетка, Мячик, ДвижениеВверх, ДвижениеЛево; Процедура Таймер1_ПриСрабатыванииТаймера() Экспорт // Обеспечим корректное закрытие формы. Если Не(Форма1.Отображать) Тогда ЗавершитьРаботу(10); КонецЕсли; Если ДвижениеЛево Тогда cx = cx - РегуляторВверхВниз1.Значение; Иначе cx = cx + РегуляторВверхВниз1.Значение; КонецЕсли; Если ДвижениеВверх Тогда cy = cy - РегуляторВверхВниз1.Значение; Иначе cy = cy + РегуляторВверхВниз1.Значение; КонецЕсли; Мячик.Лево = cx; Мячик.Верх = cy; // Зададим условия движения мячика. Если (Мячик.Top > ИгровоеПоле.КлиентВысота - Мячик.Высота - Ракетка.Высота) Тогда // Здесь должен быть или отскок, или пролёт вниз поля с завершением игры. Если (((Мячик.Лево + (Мячик.Ширина / 2)) < Ракетка.Лево) или ((Мячик.Лево) > (Ракетка.Право - (Мячик.Ширина / 2)))) Тогда Таймер1.Остановить(); ОкноСообщений1 = Ф.ОкноСообщений(); ОкноСообщений1.Заголовок = ""; ОкноСообщений1.Текст = "Мяч пропущен."; ОкноСообщений1.Значок = Ф.ЗначокОкнаСообщений.Восклицание; ОкноСообщений1.Кнопки = Ф.КнопкиОкнаСообщений.ОК; ОкноСообщений1.Показать(); cx = 15; cy = 3; Мячик.Лево = cx; Мячик.Верх = cy; Кнопка2_Нажатие(); Иначе // Меняем передвижение мячика по игрек на противоположное. ДвижениеВверх = Истина; КонецЕсли; КонецЕсли; Если (Мячик.Право > ИгровоеПоле.КлиентШирина) Тогда ДвижениеЛево = Истина; КонецЕсли; Если (Мячик.Лево < 0) Тогда ДвижениеЛево = Ложь; КонецЕсли; Если (Мячик.Верх < 0) Тогда ДвижениеВверх = Ложь; КонецЕсли; КонецПроцедуры Процедура Форма1_КлавишаВниз() Экспорт Если Ф.АргументыСобытия.КодКлавиши = 80 Тогда Кнопка2_Нажатие(); КонецЕсли; КонецПроцедуры Процедура Форма1_РазмерИзменен() Экспорт Ракетка.Положение = Ф.Точка(Икс, ИгровоеПоле.Низ - 15); КонецПроцедуры Функция Кнопка1_Нажатие() Экспорт ДвижениеВверх = Ложь; cx = 15; cy = 3; Мячик.Лево = cx; Мячик.Верх = cy; Кнопка2.Текст = "Пауза(P)"; Кнопка2_Нажатие(); КонецФункции Функция Кнопка2_Нажатие() Экспорт Если Кнопка2.Текст = "Пуск(P)" Тогда Таймер1.Начать(); Кнопка2.Текст = "Пауза(P)"; Иначе Таймер1.Остановить(); Кнопка2.Текст = "Пуск(P)"; КонецЕсли; КонецФункции Процедура РегуляторВверхВниз1_ЗначениеИзменено() Экспорт Таймер1.Интервал = РегуляторВверхВниз1.Значение; КонецПроцедуры Процедура ИгровоеПоле_ПриПеремещенииМыши() Экспорт Икс = Ф.АргументыСобытия.Икс - (Ракетка.Ширина / 2); Ракетка.Положение = Ф.Точка(Икс, ИгровоеПоле.Низ - 15); КонецПроцедуры ПодключитьВнешнююКомпоненту("C:\444\111\OneScriptForms\OneScriptForms\bin\Debug\OneScriptForms.dll"); Ф = Новый ФормыДляОдноСкрипта(); Форма1 = Ф.Форма(); Форма1.НачальноеПоложение = Ф.НачальноеПоложениеФормы.ЦентрЭкрана; Форма1.Размер = Ф.Размер(485, 300); Форма1.Текст = "Понг (OneScript)"; Форма1.КлавишаВниз = Ф.Действие(ЭтотОбъект, "Форма1_КлавишаВниз"); Форма1.РазмерИзменен = Ф.Действие(ЭтотОбъект, "Форма1_РазмерИзменен"); Форма1.Отображать = Истина; Форма1.Показать(); Форма1.Активизировать(); Икс = 0; cx = 15; cy = 3; ДвижениеВверх = Ложь; ДвижениеЛево = Ложь; Таймер1 = Ф.Таймер(); Таймер1.Интервал = 3; Таймер1.ПриСрабатыванииТаймера = Ф.Действие(ЭтотОбъект, "Таймер1_ПриСрабатыванииТаймера"); Форма1.НачатьОбновление(); ИгровоеПоле = Форма1.ЭлементыУправления.Добавить(Ф.Панель()); ИгровоеПоле.СтильГраницы = Ф.СтильГраницы.Трехмерная; ИгровоеПоле.ЦветФона = Ф.Цвет("Черный"); ИгровоеПоле.Стыковка = Ф.СтильСтыковки.Заполнение; ИгровоеПоле.ПриПеремещенииМыши = Ф.Действие(ЭтотОбъект, "ИгровоеПоле_ПриПеремещенииМыши"); Панель2 = Форма1.ЭлементыУправления.Добавить(Ф.Панель()); Панель2.Стыковка = Ф.СтильСтыковки.Право; Панель2.Ширина = 105; Ракетка = ИгровоеПоле.ЭлементыУправления.Добавить(Ф.Панель()); // Это ракетка. Ракетка.Размер = Ф.Размер(100, 10); Ракетка.Положение = Ф.Точка(20, 20); Ракетка.ЦветФона = Ф.Цвет("Красный"); Ракетка.УстановитьЗакругленныеУглы(10); Мячик = ИгровоеПоле.ЭлементыУправления.Добавить(Ф.Панель()); // Это мячик. Мячик.Размер = Ф.Размер(26, 26); Мячик.Положение = Ф.Точка(20, 20); Мячик.ЦветФона = Ф.Цвет("Белый"); Мячик.УстановитьЗакругленныеУглы(26); Кнопка1 = Панель2.ЭлементыУправления.Добавить(Ф.Кнопка()); Кнопка1.Положение = Ф.Точка(10, 20); Кнопка1.Ширина = 90; Кнопка1.Текст = "Новая игра"; Кнопка1.Нажатие = Ф.Действие(ЭтотОбъект, "Кнопка1_Нажатие"); Кнопка1.КлавишаВниз = Ф.Действие(ЭтотОбъект, "Форма1_КлавишаВниз"); Кнопка2 = Панель2.ЭлементыУправления.Добавить(Ф.Кнопка()); Кнопка2.Ниже(Кнопка1, 15); Кнопка2.Ширина = 90; Кнопка2.Текст = "Пауза(P)"; Кнопка2.Нажатие = Ф.Действие(ЭтотОбъект, "Кнопка2_Нажатие"); Кнопка2.КлавишаВниз = Ф.Действие(ЭтотОбъект, "Форма1_КлавишаВниз"); Надпись1 = Панель2.ЭлементыУправления.Добавить(Ф.Надпись()); Надпись1.Текст = "Уровень:"; Надпись1.Размер = Ф.Размер(75, 20); Надпись1.Ниже(Кнопка2, 20); Надпись1.Якорь = Ф.СтилиПривязки.Право + Ф.СтилиПривязки.Верх; РегуляторВверхВниз1 = Панель2.ЭлементыУправления.Добавить(Ф.РегуляторВверхВниз()); РегуляторВверхВниз1.Ниже(Надпись1, 5); РегуляторВверхВниз1.Ширина = Кнопка2.Ширина; РегуляторВверхВниз1.Минимум = 1; РегуляторВверхВниз1.Максимум = 10; РегуляторВверхВниз1.ЗначениеИзменено = Ф.Действие(ЭтотОбъект, "РегуляторВверхВниз1_ЗначениеИзменено"); РегуляторВверхВниз1.Значение = 3; РегуляторВверхВниз1.Якорь = Ф.СтилиПривязки.Право + Ф.СтилиПривязки.Верх; РегуляторВверхВниз1.КлавишаВниз = Ф.Действие(ЭтотОбъект, "Форма1_КлавишаВниз"); Форма1.ЗавершитьОбновление(); Панель2.Актуализировать(); Ракетка.Положение = Ф.Точка(Икс, ИгровоеПоле.Низ - 15); Таймер1.Начать(); Сообщить(?( Истина , "", "!!! ") + "Панель.УстановитьЗакругленныеУглы (Panel.SetRoundedShape) Метод" + " " + ТекущаяДата());

Смотрите также

Панель (Panel) Класс | Библиотека OneScriptForms