Пример 3. Системные диалоги. Изменение параметров шрифта

 

Разработаем приложение, в котором осуществляется загрузка текстового файла в формате RTF или TXT в компонент RichEdit, а также существует возможность изменения параметров шрифта отображаемого текста при помощи вызова соответствующего системного диалога, причём диалоги будут появляться при выборе пунктов меню.

 

В приложении должно быть следующие компоненты: MainMenu, RichEdit, OpenDialog и FontDialog (страница Dialogs).

 

После того, как все компоненты будут размещены на форме, выполните двойной щелчок на компоненте MainMenu для открытия окна редактора меню и создайте в нём пункт «Меню» два подпункта: «Открыть» и «Шрифт». Затем закройте окно редактора меню. В результате создания пунктов на форме отобразится строка меню с пунктом «Меню». При выборе одного из подпунктов меню появляется заготовка в окне редактора кода для написания процедуры по обработке события, связанного с выбором данного пункта меню. Напишите соответствующие процедуры для подпунктов «Открыть» и «Шрифт».

 

Вид приложения с размещёнными на форме компонентами на этапе разработки

 

 

Текст файла Unit1.pas

 

unit Unit1;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, ComCtrls, Menus;

 

type

  TForm1 = class(TForm)

    OpenDialog1: TOpenDialog;

    RichEdit1: TRichEdit;

    FontDialog1: TFontDialog;

    MainMenu1: TMainMenu;

    N1: TMenuItem;

    N2: TMenuItem;

    procedure N1Click(Sender: TObject);

    procedure N2Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

procedure TForm1.N1Click(Sender: TObject);

begin

   if OpenDialog1.Execute then

       RichEdit1.Lines.LoadFromFile(OpenDialog1.FileName);

end;

 

procedure TForm1.N2Click(Sender: TObject);

begin

   if FontDialog1.Execute

     then RichEdit1.SelAttributes.Assign(FontDialog1.Font);

   RichEdit1.SetFocus;

end;

 

end.