После щелчка на кнопке Применить все корректные настройки вступают
в силу, а в качестве размера шрифта используется значение 10 (рис. 8.10).
Если в поле размера шрифта указать слишком большое (большее 20) зна-
чение, при применении настроек оно «урезается» до 20. На рис. 8.11 в поле
размера шрифта указано значение 10000.
После применения настроек окно выглядит так, как показано на рис. 8.12.
Программный код и выполнение программы 299
Рис. 8.10. Результат применения настроек с некорректным значением размера шрифта
Рис. 8.11. Окно перед применением настроек: в поле размера шрифта
введено слишком большое значение
Рис. 8.12. Результат применения настроек со слишком большим значением
размера шрифта
300
Глава 8. Приложение с графическим интерфейсом: учебный проект
Интересно в данном случае то, что размер шрифта стал равен 20. Анало-
гично обрабатывается ситуация, когда в поле размера шрифта указано
слишком маленькое значение (меньшее 10). Разница в этом случае лишь
такая, что применяется не «максимальный» шрифт 20, а «минимальный»
шрифт 10.
Наиболее значимые места
программного кода
Я стану этим... Вот этим... Нет, этим я не
смогу. Впрочем, я стану другом короля!
Из к/ф «Дон Сезар де Базан»
В качестве финального штриха обсудим некоторые блоки или фрагменты
кода, которые позволяют «зафиксировать» основные и «тонкие» места ис-
пользованного нами алгоритма.
Класс MyLabel нами уже упоминался. Объектная ссылка sample этого клас-
са объявлена полем класса MyForm. Создание объекта класса выполняется
в конструкторе класса MyForm командой sample=new MyLabel(100,140,290, 110). То есть область этой текстовой метки в окне формы имеют фиксиро-
ванное положение и размер. Добавление метки в окно формы выполняется
командой Controls.Add(sample).
Здесь проиллюстрирован один достаточно продуктивный подход, который состоит в том, что для графических элементов с определен-
ными характеристиками создается, путем наследования, специальный
класс. Мы один раз в классе описываем характеристики и параметры
элемента, а потом для создания элемента соответствующего типа
и вида создаем объект данного класса. Хотя в нашем примере это не
очень заметно, но на практике это очень удобно.
Объект sample используется в методе OKButtonClick(). Метод содержит ко-
манду sample.Font=SFont, которой свойству Font объекта sample в качестве
значения присваивается значение свойства SFont. Эта же команда встре-
чается в конструкторе класса MyForm (последняя команда). В конструк-
торе команда нужна для того, чтобы для отображения образца текста по
умолчанию использовался шрифт, соответствующий настройкам в окне.
Метод OKButtonClick() является обработчиком события щелчка на кноп-
ке Применить. Что касается свойства SFont, значение свойства формируется
на основе настроек управляющих элементов в окне формы. Каждый раз,
Наиболее значимые места программного кода 301
когда запрашивается это свойство (а это происходит при выполнении ме-
тода OKButtonClick()), автоматически «считываются» настройки элемен-
тов в окне формы и на их основе вычисляется нужный шрифт (создается
объект шрифта). Что касается шрифта, применяемого в оконной форме, то
он определяется командой Font=new Font("Arial",8,FontStyle.Bold), ко-
торой свойству Font формы присваивается объект шрифта, создаваемый
командой new Font("Arial",8,FontStyle.Bold). В данном случае речь идет
о жирном шрифте типа Arial размера 8.
Текстовые массивы MN, FN, FS и BN определяют, соответственно, названия
пунктов главного меню, названия шрифтов, названия стилей шрифтов
и названия кнопок. Эти массивы играют важную роль. Дело в том, что та-
кие объекты, как кнопки Btns, радиокнопки (кнопки-переключатели) RBtns и опции CBtns, реализуются в виде массивов объектов (объектных пере-
менных). Более того, внутренние команды пунктов главного меню также
реализуются как массивы. И все соответствующие вычисления (в первую
очередь те, что касаются количества элементов) выполняются на основе
«базовых» текстовых массивов.
ПРИМЕЧАНИЕ Несколько особо обстоят дела с текстовым массивом из «чисел».
Массив возвращается как результат методом FSz(). В теле метода на
основе значений целочисленных полей min и max создается тексто-