Выбрать главу

После щелчка на кнопке Применить все корректные настройки вступают

в силу, а в качестве размера шрифта используется значение 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 создается тексто-