37765

Робота з діалоговими компонентами

Лабораторная работа

Информатика, кибернетика и программирование

Виконавши лабораторну роботу, я освоїв роботу програм з такими діалоговими компонентами як OpenDialog та SaveDialog для зв’язку з файлами (їх створення, збереження або відкриття вже існуючих), PrinterSetupDialog для налагодження підключених принтерів для друку, FindDialog та ReplaceDialog для пошуку та заміни тексту. Також закріпив навички роботи з компонентами середовища Delphi TMemo та TMainMenu, зрозумів основні принципи створення текстового редактора.

Украинкский

2013-09-25

2.09 MB

1 чел.

6

Міністерство освіти і науки України

Хмельницький національний університет

Кафедра системного програмування

Лабораторна робота №5

з програмування

на тему:

«Робота з діалоговими компонентами»

Виконав:

Студент групи КІ-10-1

Ноль М.Г.

Перевірив:

Мостовий С.В.

Хмельницький

2011

Лабораторна робота №5

Тема: Робота з діалоговими компонентами.

Мета:ознайомитись з діалоговими компонентами середовища Delphi та навчитись їх застосовувати за призначенням.

Завдання

Розробити текстовий редактор, який містить головне меню з пунктами “Файл”, “Редагування”, “Друк”, “Про програму”. Пункт меню “Файл” містить підпункти “Відкрити”, “Зберегти”, “Зберегти як”. Пункт меню “Редагування” містить підпункти “Копіювати”, “Вирізати”, “Вставити”, “Замінити”. Пункт меню “Друк” містить підпункти “Друкувати”, “Настроїти принтер”.

Project1.lpr

program project1;

{$mode objfpc}{$H+}

uses

 {$IFDEF UNIX}{$IFDEF UseCThreads}

 cthreads,

 {$ENDIF}{$ENDIF}

 Interfaces, // this includes the LCL widgetset

 Forms, Unit1, LResources, Printer4Lazarus

 { you can add units after this };

{$IFDEF WINDOWS}{$R project1.rc}{$ENDIF}

begin

 {$I project1.lrs}

 Application.Title:='Текстовий редактор';

 Application.Initialize;

 Application.CreateForm(TForm1, Form1);

 Application.Run;

end.  


Unit1.pas

unit Unit1;

{$mode objfpc}{$H+}

interface

uses

 Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, Menus, StdCtrls, PrintersDlgs;

type

 { TForm1 }

 TForm1 = class(TForm)

   MainMenu1: TMainMenu;

   Memo1: TMemo;

   MenuItem1: TMenuItem; MenuItem2: TMenuItem; MenuItem3: TMenuItem;

   MenuItem4: TMenuItem; MenuItem5: TMenuItem; MenuItem6: TMenuItem;

   MenuItem7: TMenuItem; MenuItem8: TMenuItem; MenuItem9: TMenuItem;

   MenuItem10: TMenuItem;  MenuItem11: TMenuItem;

   MenuItem12: TMenuItem;  MenuItem13: TMenuItem;

   OpenDialog1: TOpenDialog;

   PrintDialog1: TPrintDialog;

   PrinterSetupDialog1: TPrinterSetupDialog;

   ReplaceDialog1: TReplaceDialog;

   SaveDialog1: TSaveDialog;

   procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);

   procedure ReplaceDialog1Find(Sender: TObject);

   procedure FormCreate(Sender: TObject);

   procedure MenuItem3Click(Sender: TObject);

   procedure MenuItem5Click(Sender: TObject);

   procedure MenuItem6Click(Sender: TObject);

   procedure MenuItem7Click(Sender: TObject);

   procedure MenuItem8Click(Sender: TObject);

   procedure MenuItem9Click(Sender: TObject);

   procedure MenuItem10Click(Sender: TObject);

   procedure MenuItem11Click(Sender: TObject);

   procedure MenuItem12Click(Sender: TObject);

   procedure MenuItem13Click(Sender: TObject);

   procedure ReplaceDialog1Replace(Sender: TObject);

 private

   { private declarations }

 public

   { public declarations }

 end;

var

 Form1: TForm1; FName:string;

implementation

{ TForm1 }

procedure TForm1.MenuItem5Click(Sender: TObject);  //відкрити файл

begin

if (Memo1.Modified) and (Memo1.Text<>'') then if (MessageDlg('Текстовий редактор','Зберегти перед виходом ?',mtConfirmation,[mbYes,mbNo],0)=mrYes) then MenuItem6Click(Sender);

OpenDialog1.Filter:='Text Files(*.txt)|*TXT|Office Files(*.doc)|*DOC';

if OpenDialog1.Execute then

  begin  Memo1.Lines.Clear;

  FName:=UTF8ToSys(OpenDialog1.FileName);

  Memo1.Lines.LoadFromFile(FName);

  Form1.Caption:=SysToUTF8(FName);

  Memo1.Modified:=False;

  end;

end;

procedure TForm1.MenuItem6Click(Sender: TObject);  //зберегти файл

var a:string;

begin

if (Memo1.Modified) and (Memo1.Text<>'') then begin

  if FName='' then

     begin SaveDialog1.Filter:='Text Files(*.txt)|*TXT|Office Files(*.doc)|*DOC';

     if SaveDialog1.Execute then

        begin

        a:=SaveDialog1.FileName;

        Memo1.Lines.SaveToFile(UTF8ToSys(a)+'.txt');

        end;

     end else

  Memo1.Lines.SaveToFile(FName);

  Memo1.Modified:=False;

  end;

end;

procedure TForm1.MenuItem7Click(Sender: TObject);  //зберегти як

var a:string;

begin

if Memo1.Text<>'' then begin SaveDialog1.Filter:='Text Files(*.txt)|*TXT|Office Files(*.doc)|*DOC';

  if SaveDialog1.Execute then begin a:=SaveDialog1.FileName; Memo1.Lines.SaveToFile(UTF8ToSys(a)); end;

  Memo1.Modified:=False;

  end;

end;

procedure TForm1.MenuItem12Click(Sender: TObject);  //друкувати

begin

  ShowMessage('Файл буде надруковано!');

end;

procedure TForm1.MenuItem13Click(Sender: TObject);  //настроїти принтер

begin

 PrinterSetupDialog1.Execute;

end;

procedure TForm1.MenuItem3Click(Sender: TObject);  //про програму

begin

 ShowMessage('Даний редактор дозволяє створювати нові текстові файли або відкривати вже існуючі,'+#10#13+'редагувати, копіювати, вставляти, замінювати.'+#10#13+'Також редактор дозволяє отримувати інформацію про принтери та виводити текст на друк.'+#10#13+'Виконав студент гр. КІ-10-1 Ноль Микола, 2011');

end;

procedure TForm1.MenuItem8Click(Sender: TObject);  //копіювати

begin

  Memo1.CopyToClipboard;

end;

procedure TForm1.MenuItem9Click(Sender: TObject);  //вирізати

begin

  Memo1.CutToClipboard;

end;

procedure TForm1.MenuItem10Click(Sender: TObject);  //вставити

begin

  Memo1.PasteFromClipboard;

end;

procedure TForm1.MenuItem11Click(Sender: TObject);  //замінити

begin

  with ReplaceDialog1 do

      begin if Memo1.SelLength<>0 then FindText:=Memo1.SelText;

      Position:=Point(Form1.Left,Form1.Top+Memo1.Top+Memo1.Height);

      Options:=Options+[frHideUpDown,frHideWholeWord];

      Execute;

      end;

end;

procedure TForm1.ReplaceDialog1Find(Sender: TObject);

var

FTPos:Integer; IText,FText:String;

begin

Memo1.SetFocus;

if not (frMatchCase in ReplaceDialog1.Options) then

FText:=AnsiLowerCase(ReplaceDialog1.FindText) else FText:=ReplaceDialog1.FindText;

IText:=copy(Memo1.Text,Memo1.SelStart+Memo1.SelLength+1,Length(Memo1.Text));

if not (frMatchCase in ReplaceDialog1.Options) then IText:=AnsiLowerCase(IText);

FTPos:=pos(FText,IText);

if FTPos<>0 then begin

FTPos:=FTPos+Memo1.SelStart+Memo1.SelLength;

Memo1.SelStart:=FTPos-1;Memo1.SelLength:=Length(FText); end;

end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: boolean);

begin

 CanClose:=MessageDlg('Текстовий редактор','Дійсно закрити?',mtConfirmation,[mbYes,mbNo],0)=mrYes;

 if CanClose and Memo1.Modified and (Memo1.Text<>'') then if (MessageDlg('Текстовий редактор','Зберегти перед виходом ?',mtConfirmation,[mbYes,mbNo],0)=mrYes) then MenuItem6Click(Sender);

end;

procedure TForm1.ReplaceDialog1Replace(Sender: TObject);

begin

with ReplaceDialog1 do

while True do

begin

if Memo1.SelText <> FindText then ReplaceDialog1Find(Sender);

if Memo1.SelLength = 0 then begin ShowMessage('Досягнуто кінець файла. Пошук закінчено.'); Break; end;

Memo1.SelText:=ReplaceText;

if not (frReplaceAll in Options) then Break;

end;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

 FName:='';

end;

initialization

 {$I unit1.lrs}

end.

Висновок.  Виконавши лабораторну роботу, я освоїв роботу програм з такими діалоговими компонентами як OpenDialog та SaveDialog для зв’язку з файлами (їх створення, збереження або відкриття вже існуючих), PrinterSetupDialog для налагодження підключених принтерів для друку, FindDialog та ReplaceDialog для пошуку та заміни тексту. Також закріпив навички роботи з компонентами середовища Delphi TMemo та TMainMenu, зрозумів основні принципи створення текстового редактора.


 

А также другие работы, которые могут Вас заинтересовать

41830. Создание и форматирование таблиц. Использование логических и математических функций в табличных вычислениях 178.5 KB
  Использование логических функций необходимо, когда для выбора правильного решения нужно проверить выполнение одного или нескольких условий. Наиболее часто используемые функции этой категории
41831. Создание архива данных. Извлечение данных из архива. Атрибуты файла и его объем 27.83 KB
  Атрибуты файла и его объем Цель: изучение принципов архивации файлов функций и режимов работы наиболее распространенных архиваторов приобретение практических навыков работы по созданию архивных файлов и извлечению файлов из архивов. Теоретические сведения к лабораторной работе Архивация упаковка помещение загрузка исходных файлов в архивный файл в сжатом или несжатом виде. Архивация предназначена для создания резервных копий используемых файлов на случай потери или порчи по какимлибо причинам основной копии невнимательность...
41832. Художественные средства. Инструмент rtistic Mediа 217.5 KB
  Примеры рисования инструментом rtistic Medi Художественные средства Инструмент rtistic Medi Художественные средства входит в состав группы инструментов Curve Кривая рис. Инструмент rtistic Medi Художественные средства включает в себя пять отличных друг от друга режимов работы. Инструмент rtistic Medi Художественные средства может работать в следующих режимах: Preset Заготовка заготовка для живописи; Brush Кисть художественная кисть; Spryer Распылитель распылитель; Clligrphic Каллиграфический ...
41833. ИССЛЕДОВАНИЕ ТИПОВОЙ СХЕМЫ УПРАВЛЕНИЯ ЭЛЕКТРОПРИВОДОМ ПОСТОЯННОГО ТОКА ПОДЪЁМНО КРАНОВОГО МЕХАНИЗМА 247 KB
  Изучить принцип действия и исследовать работу одной из типовых схем управления электроприводом подъёмно кранового механизма с ДПТ независимого возбуждения. Ознакомиться с электрооборудованием типового шкафа управления. Исследовать работу схемы управления электроприводом подъёмно – кранового механизма.
41834. Решение бухгалтерских задач с помощью пакета Excel 286.36 KB
  Решение бухгалтерских задач с помощью пакета Excel Цель работы Познакомиться с работой пакета Excel как инструмента для решения задач бухгалтерского учета. Научиться правильно задавать имена переменным определять ссылки на ячейки использовать функции при вводе формул работать с массивами данных в Excel. Должна быть установлена программа Microsoft Excel.
41835. ЛОГИЧЕСКИЕ ЭЛЕМЕНТЫ И СХЕМЫ 238.57 KB
  Данная работа посвящена изучению простейших комбинационных логических устройств реализующих логические функции сложения умножения и отрицания. В результате функции отображающие информацию принимают в каждый момент времени только значения 0 или 1. Такие функции называют логическими а сигналы входные и выходные переменные – двоичными бинарными. Рассматривая входные сигналы х1 х2 хп в качестве аргументов можно соответствующие выходные сигналы представлять в виде функции уi = fх0 х1 х2 хп с помощью...
41836. Изучение и анализ конструкций сцеплений транспортных автомобилей 78.68 KB
  Контрольные вопросы дайте классификацию сцеплений назначение устройство и принцип работы фрикционного однодискового гидравлического и электромагнитного сцеплений конструктивные особенности различных видов сцеплений их преимущества и недостатки применяемые материалы для изготовления элементов и узлов сцеплений какие приводы используются для управления сцеплением опишите их устройство и дайте им характеристику опишите устройство и работу центробежного сцепления какие существуют способы передачи крутящего момента от маховика двигателя к...
41837. Разработка комплекта конструкторской документации на кодовый замок 763 KB
  Наиболее интересными для обывателя являются, правда, другие замки, устанавливающиеся прямо в дверное полотно. Они имеют огромный плюс – им не нужна замочная скважина, а значит, сторонний наблюдатель просто не будет знать о его присутствии
41838. Система питания дизельных двигателей 177.92 KB
  Николаева Лабораторная работа № 9 Система питания дизельного двигателя Сделал студент группы 2151 Гуськов К.Е Система питания дизельных двигателей Общая информация При работе дизельного двигателя в его цилиндры всасывается наружный воздух который сжимается до высокого давления. Система подачи воздуха Главными особенностями конструкции впускного воздушного тракта рассматриваемого в настоящем Руководстве дизельного двигателя являются использование в нем турбокомпрессора приводимого во вращение потоком отработавших газов и отсутствие...