Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прикл_программир_ч1.doc
Скачиваний:
6
Добавлен:
18.09.2019
Размер:
11.05 Mб
Скачать

7.2 Диалог выбора шрифта(компонент FontDialog )

Этот компонент вызывает диалоговое окно выбора шрифта ,в котором пользовательможет выбрать имя ширфта ,его стиль(начертание), размеры и другие атрибуты.Основное свойство компонента – Font,в котором можно задать начальные установки атрибутов шрифта или прочесть значениея атрибутов, выбранные пользователем в процессе диалога.Свойства MaxFontSize и MinFontSize устанавливают ограничения на максимальный и минимальный размеры шрифта. По умолчанию значения этих свойств равны 0 ,при этом никакие ограничения не накладываются.Свойство Option содержит множество опций ,определяющих особенности отображения окна выбора атрибутов шрифта. По умолчанию все опции отключены кроме опции fdEffects , которая отображает индикаторы специальных эффектов (жирный шрифт,курсив ,подчеркивание и т.д.) и список цветов.

Фрагмент кода иллюстрирующего применениу компонента FontDialog при использовании в качестве окна редактирования компонента RichEdit1 имеет вид:

If ( FontDialog1-> Execute())

RichEdit1->SelAttributes->Assign(FontDialog1->Font);

В данном фрагменте меняются атрибуты шрифта только выделенной части текста . При необходимости изменнять шрифт всего текста целесообразно использовать оператор:

If ( FontDialog1-> Execute())

RichEdit1->Font->Assign(FontDialog1->Font);

7.3 Диалог выбора цвета(компонент ColorDialog )

С помощью этого компонента вызывается диалоговое окно выбора цвета , в котором пользователь может выбрать цвет из базовой палитры.Основным свойством компонента является свойство Color , которое соответствует тому цвету , который выбрал в диалоге пользователь.Полученное значение цвета можно передать любому компонентному объекту , имеющему одноименное свойство.Например, следующий фрагмент кода приведет к окрашиванию фона компонента RichEdit1 цветом, выбранным пользователем в диалоге ColorDialog1.

If (ColorDialog1-> Execute())

RichEdit1->Color = ColorDialog1->Color;

//---------------------------------------------------------------------------

Программный код приложения, иллюстрирующего примеры использования рассмотренных диалогов показан на рисунке 7.1.Интерфейс приложения содержит форму, на которой расположены семь кнопок типа(Button), многострочный редактор (RichEdit1) и диалоги: открытия и сохранения файлов(OpenDialog1 и SaveDialog1), выбора шрифтов ( FontDialog1) и выбора цвета( ColorDialog1) .

//Программный код приложения по применению различных диалогов

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

AnsiString MyFName="";//Описание переменной

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)//Открыть файл

{

if(OpenDialog1->Execute())//Открытие диалога OpenDialog1

{

MyFName= OpenDialog1->FileName;//Присвоение переменной имени файла

RichEdit1->Lines->LoadFromFile(MyFName);//Загрузка файла с заданным именем в текстовый редактор

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)//Сохранить как

{

SaveDialog1->FileName=MyFName;

if(SaveDialog1->Execute())//Открытие диалога SaveDialog1

{

MyFName= SaveDialog1->FileName;

RichEdit1->Lines->SaveToFile(MyFName);// Сохранение файла с заданным именем

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)//Сохранить

{

if(MyFName!="")

RichEdit1->Lines->SaveToFile(MyFName);//Сохранить если имя файла задано

else if(SaveDialog1->Execute())

{

MyFName= SaveDialog1->FileName;

RichEdit1->Lines->SaveToFile(MyFName); //Сохранить как если имя файла не задано

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)//Изменение щрифта, выделенной части текста

{

if(FontDialog1->Execute()) //Вызов диалога FontDialog1

RichEdit1->SelAttributes->Assign( FontDialog1->Font); Изменение атрибутов щрифта в выделенной части текста редактора RichEdit1.

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button5Click(TObject *Sender)// Изменение атрибутов щрифта во всем тексте

{

if(FontDialog1->Execute())

RichEdit1->Font->Assign( FontDialog1->Font);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button6Click(TObject *Sender)//Изменение цвета фона редактора

{

if(ColorDialog1->Execute())

RichEdit1->Color=ColorDialog1->Color;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button7Click(TObject *Sender) //Изменение цвета фона шрифта

{

if(ColorDialog1->Execute())

RichEdit1->Font->Color=ColorDialog1->Color;

}

//------------------------------------------------------------------

Рис.7.1 Программный код примеров, иллюстрирующих работу диалоговых окон

Программный код данного приложения при нажатии соответствующих кнопок позволяет:

  • Открыть файл;

  • Запомнить файл со старым именем;

  • Сохранить файл с новым именем;

  • Изменить шрифт для выделенной части текста;

  • Изменить шрифт всего текста;

  • Изменить цвет фона многострочного редактора;

  • Изменить цвета шрифта.