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

Інформація про навчальний заклад

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2011
Тип роботи:
Лабораторна робота
Предмет:
Програмування

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Хмельницький національний університет Кафедра системного програмування Лабораторна робота №5 з програмування на тему: «Робота з діалоговими компонентами» Лабораторна робота №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, зрозумів основні принципи створення текстового редактора. //
Антиботан аватар за замовчуванням

28.03.2013 22:03-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!