DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

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

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

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

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

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

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

Міністерство освіти і науки України Хмельницький національний університет Кафедра системного програмування Лабораторна робота №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:17

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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