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


 

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

82431. Кризис европейской рациональности и пути его преодоления в представлениях современных западных философов 25.75 KB
  Задача заключается с их точки зрения в том чтобы преодолеть негативные явления и сохранить традиционные ценности ренессансной и просвещенческой культуры. В отличие от российской философской мысли где значительную роль играет представление об особой роли России в преодолении кризиса культуры и религиозной ориентации в ходе этого преодоления западные философы посвоему видят как причины возникшей кризисной ситуации так и пути её преодоления. Известные западные философы XX века говорили о неизбывности кризисности сопровождающей развитие...
82432. Дилемма сциентизма и антропологизма 26.8 KB
  Сциентисты провозглашают знание как наивысшую культурную ценность В качестве аргументов в свою пользу сциентисты привлекают знаменитый пример из прошлого когда наука Нового времени пыталась обосновать новые подлинно гуманные ценности и культуру. Ими совершенно справедливо подчеркивается что наука есть производительная сила общества порождающая общественные ценности и имеющая...
82433. Познавательные практики и онтологические проекты в современной зарубежной философии 43.12 KB
  Экзистенциальная философия Сартра обнаруживает себя как одно из современных ответвлений феноменологии Гуссерля как приложение его метода к живому сознанию к субъективно-деятельной стороне того сознания с каким конкретный индивид заброшенный в мир конкретных ситуаций предпринимает какое-либо действие вступает в отношение с другими людьми и вещами стремится к чемулибо принимает житейские решения участвует в общественной жизни и так далее. Сартр рассматривает роль...
82434. Причины и смысл «антропологического бунта» в философии XX века. Основные темы философской антропологии 27.12 KB
  Мотив репрессивности и агрессивности таким образом становится ведущим в социальном бытии человека в XX веке. Фромм полагает что одиночество характерная черта современного человека. По его мнению одиночество и беспомощность вызваны желанием человека обрести экономическую независимость. Обретение экономической свободы и материального благополучия привели человека к одиночеству неуверенности и изоляции от внешнего мира.
82435. Стереотипы и сценарии поведения. Их значимость для межкультурной коммуникации 37.49 KB
  Так постепенно складываются этнокультурные стереотипы представляющие собой обобщенные представления о типичных чертах харрных для какогол. Стереотипы явл. По этой причине стереотипы существуют и широко используются людьми. Откуда берутся стереотипыСтереотипами определяется около двух третей форм чел.
82436. Причины различий языковой картины мира 33.33 KB
  Восприятие окружающего мира отчасти зависит от культурно-национальных особенностей носителей конкретного языка. Поэтому с точки зрения этнологии, лингвокультуралогии и других смежных областей наиболее интересным является установление причин расхождений в языковых картинах мира
82437. Учёные – основатели учения о языковой картине мира 33.32 KB
  Языковая картина мира видение восприятие окружающего мира посредством лексический и грамматической системы родного языка; сетка которую наш родной язык набрасывает на наше восприятие мира и его оценку. Другой выдающийся лингвист внесший вклад в разработку учения о языковой картине мира американский учёный Эдуард Сэпир 18841939. Ученик Сэпира Бенджамен Ли Уорф 18971941 стремился обосновать свою гипотезу о влиянии языка не только на восприятие мира людей но и на их поведение.
82438. Языковые лакуны и реалии 33.65 KB
  Нет слова дежурный To hck ехать верхом не спеша Различаются языковую картину мира и концептуальную картину мира. Концептуальную картина мира у всех народов одна и та же т . А языковая картина мира обусловлена особенностями лексико симантической системой языка. Лексика играет ведущую роль в формировании языковой картины мира.
82439. Понятие внутренней формы языка по Гумбольдту 29.54 KB
  Вильгельм фон Гумбольдт разработал учение о внутренней форме языка. Упрощенно говоря под внутренней формой языка он понимал особенности номинации конкретных предметов в конкретном языке. Если раскрывать данное понятие то можно сказать что внутренняя форма языка по Гумбольдту является средством выражения народного или национального духа который способен формироваться во внутренней форме а затем выражаться с помощью языка.