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, зрозумів основні принципи створення текстового редактора.


 

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

21874. Условия и факторы качества управленческих решений 47 KB
  Условия и факторы качества управленческих решений. Свойства качественных решений 3. Условия и факторы качества решений 3. Существует показатель косвенно оценивающий качество принятых управленческих решений через количество выполненных решений: Кк = Рв Рн Рп 100 где Кк коэффициент качества управленческих решений; Рп количество принятых управленческих решений; Рв количество выполненных управленческих решений; Рн количество выполненных некачественных решений.
21875. Модели и методология разработки управленческого решения 143.5 KB
  Модель менее сложна чем моделируемый объект и позволяет руководителю лучше разобраться в конкретной ситуации и принять правильное решение. В этой модели основное внимание уделяется роли ожиданий и системы ценностей членов организации их представлениям о ситуации взаимодействию между членами организации.Качество индуктивной модели определяется тем насколько с одной стороны удается упростить описание ситуации принятия решения а с другой насколько верно удается отразить основные свойства моделируемой ситуации. Здесь путь создания...
21876. Гражданский иск как способ восстановления нарушенных прав 339.5 KB
  Объектом работы являются правоотношения, возникающие между государством в лице органов и должностных лиц, осуществляющих производство по уголовному делу и гражданином, в связи с реализацией им права на восстановление нарушенных прав, в том числе и входящего в его структуру права на возмещение имущественного вреда и устранение последствий морального вреда.
21877. Роль автоматизации в процессе производства нефтяного кокса 405.5 KB
  Целью данной курсовой работы является изучение роли автоматизации в процессе производства нефтяного кокса. Актуальность избранной темы вызвана тем, что внедрение специальных автоматических устройств приводит к увеличению количества продукции и улучшению его качества, росту производительности труда, снижению себестоимости продукции, улучшению условий работы, удлинению сроков эксплуатации оборудования и т. д.
21878. Разработка информационных фильтров для программируемых сетевых агентов 548 KB
  Общая теория информационных агентов, дан обзор существующих разработок в области программирования при помощи агентов, введены и формализованы понятия социальной сети как информационного пространства, где действует агент, а также определены специфические функции агента, приведены этапы и результаты разработки сетевого агента.
21879. БАЛЬНЕОЛОГИЧЕСКИЕ РЕСУРСЫ КБР: ПРОБЛЕМЫ ИСПОЛЬЗОВАНИЯ И ПЕРСПЕКТИВЫ РАЗВИТИЯ (НА ПРИМЕРЕ КУРОРТА НАЛЬЧИК) 1.61 MB
  Изучение природных условий и ресурсов КБР, населения и трудовых ресурсов, хозяйства и экономических предпосылок развития рекреации; Составление характеристики рекреационных ресурсов КБР и их использования: природных, социально-экономических, культурно-исторических ресурсов; Рассмотрение современного курортно-рекреационного комплекса КБР...
21880. Бандитизм (статья 209 УК РФ) 250.5 KB
  Бандитизм - преступления против общественной безопасности, т.е. деяния, признанные уголовным законом грубо нарушающими нормальные условия повседневной жизни и деятельности людей. Эти преступления причиняют или могут причинить существенный вред личным, общественным, и государственным интересам, здоровью, телесной неприкосновенности и достоинству граждан.
21881. Влияние восточных элементов на режиссуру ХХ века 1.24 MB
  Рассмотреть основные принципы театра «Но», охарактеризовать функции маски в театре «Но», выявить аналогии основных принципов театра «Но» в европейской режиссуре, проанализировать функции маски в европейской режиссуре XX века.
21882. Основы организации обслуживания потребителей 87.5 KB
  1 Метод обслуживания официантами .2 Самообслуживание его сущность и формы Комплексная оценка показателей качества обслуживания 1. Процесс обслуживания потребителей это совокупность операций которые выполняются исполнителем при непосредственном контакте с потребителем услуг во время реализации кулинарной продукции и организации досуга.