Здесь показывается окно выбора цвета, и если цвет выбран, то просто происходит перерисовка окна. А где же изменение цвета шрифта? Как уже говорилось, когда мы работали с кистью, цвет нужно менять непосредственно перед рисованием, и здесь это делать нет смысла. Поэтому корректируем событие onPaint:
Canvas.Font.Color:=ColorDialog1.Color;
Canvas.TextOut(100,100, 'Привет всем!!!');
Теперь установим на форму компонент FontDialog с вкладки Dialogs. Это почти такой же компонент, как мы использовали для смены цвета, только здесь будет появляться стандартное окно смены шрифта. Добавьте на форму кнопку с надписью "Изменить шрифт" и для ее события onclick напишите следующее:
if FontDialog1.Execute then
begin
Canvas.Font:=FontDialogl.Font;
FormPaint(nil);
end;
В первой строке кода показывается окно смены шрифта так же, как это делалось для изменения цвета. Если пользователь выбрал шрифт и нажал ОК, то устанавливается его свойство Font объекта canvas. После этого мы заставляем форму обновить свое содержимое. При новой прорисовке содержимого формы текст уже выводится с новым шрифтом.
Единственный недостаток этого примера заключается в следующем. Если сначала выбрать большой шрифт, а затем маленький, то старое содержимое текста, написанного большим шрифтом, не уничтожается, а новый рисуется поверх старого:
О первом из них мы уже говорили и использовали его.
Второй метод invalidate имеет практически тот же смысл, только заставляет прорисоваться полностью все окно, а не только его элементы.
Итак, мы научились менять все параметры текста с помощью стандартного диалогового окна. Как менять отдельные свойства—это отдельная тема, ведь свойство Font имеет объектный тип TFont с массой свойств. Вот основные свойства:
- charset— позволяет определить или указать набор символов или просто кодировку. По умолчанию кодировка равна константе default_charset, которая соответствует кодировке ОС;
- color — цвет шрифта в виде экземпляра класса TColor;
- Handle — дескриптор шрифта, который используется при обращении к WinAPI- функциям;
- Height — высота шрифта;
- Name — имя шрифта;
- size — размер шрифта;
- Pitch — позволяет указать, что все символы шрифта должны иметь одинаковую ширину;
- style — стиль шрифта. В этом параметре может быть сочетание из следующих параметров:
- fsBold — жирный;
- fsitalic — наклонный;
- f sunder line — подчеркнутый;
- f sstrikeout — зачеркнутый.