Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаборатоорная 7.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
549.31 Кб
Скачать

Пример 2. Системные диалоги. Загрузка текстового файла

 

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

 

В приложении должно быть две стандартных кнопки (с надписями «Показать» и «Шрифт»), компонент RichEdit, компоненты OpenDialog и FontDialog (страница Dialogs).

 

Компоненты OpenDialog и FontDialog являются невизуальными, поэтому могут располагаться в любом месте формы.

 

Процедура для кнопки "Шрифт" должна выглядеть следующим образом:

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  if FontDialog1.Execute

     thenRichEdit1.SelAttributes.Assign(FontDialog1.Font);

  RichEdit1.SetFocus;

end;

 

Процедура для кнопки «Показать» будет выглядеть так:

 

procedure TForm1.Button2Click(Sender: TObject);

begin

  if OpenDialog1.Execute       thenRichEdit1.Lines.LoadFromFile(OpenDialog1.FileName);

end;

 

Пример 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

     thenRichEdit1.SelAttributes.Assign(FontDialog1.Font);

   RichEdit1.SetFocus;

end;

 

end.

Пример 1. Рисование на канве

 

В данном примере представлено приложение, которое рисует по пикселям график синусоиды на канве формы.

Измените ширину и высоту формы будущего приложения примерно так, как это показано на рисунках ниже.

 

Способ 1

Для рисования будем использовать свойство канвы Pixels.

В окне Object Inspector на вкладке Events выберите событие OnPaintи сделайте двойной щелчок в строке напротив этого события. Перед вами появится окно редактора кода с заготовкой процедуры для обработки события OnPaint. Разместите следующий код в теле процедуры:

 

procedure TForm1.FormPaint(Sender: TObject);

 var

  X,Y: real;      //  координаты функции

  PX,PY: longint; //  координаты пикселей

begin

 Color := clWhite;

 for PX := 0 to ClientWidth do

  begin

   {X – аргумент графика, соответствующий пикселю с координатой РХ}

   X := PX*4*Pi/ClientWidth;

   Y:=Sin(X);

   {PY – координата пикселя, соответствующая координате Y}

   PY:=trunc(ClientHeight - (Y+1)*ClientHeight/2);

   {Устанавливается черный цвет выбранного пикселя (0 яркости)}

   Canvas.Pixels [PX, PY] := 0;

  end;

end;

 

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

 

 

График получился нечётким, разбитым на отдельные точки – пиксели.