Итак давайте сделает программу блокнот:
1. Так должен будет выглядеть наш интерфейс, нужны компоненты TMemo, TMainMenu, TOpenDialog и TSaveDialog:
2. Выберем Menu Editor:
3. Добавим менюшки:
4. Добавим события менюшек TForm1.MenuItem2Click, TForm1.MenuItem3Click и TForm1.MenuItem4Click:
5. Напишим код:
Код Unit1.pas:
unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, Forms, Controls, Graphics, Dialogs, Menus, StdCtrls; type { TForm1 } TForm1 = class(TForm) MainMenu1: TMainMenu; Memo1: TMemo; MenuItem1: TMenuItem; MenuItem2: TMenuItem; MenuItem3: TMenuItem; MenuItem4: TMenuItem; MenuItem5: TMenuItem; N2: TMenuItem; N1: TMenuItem; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; procedure FormCreate(Sender: TObject); procedure MenuItem2Click(Sender: TObject); procedure MenuItem3Click(Sender: TObject); procedure MenuItem4Click(Sender: TObject); procedure MenuItem5Click(Sender: TObject); private public end; var Form1: TForm1; strFilter:string; { фильтр для расширений файлов } implementation {$R *.lfm} { TForm1 } procedure TForm1.FormCreate(Sender: TObject); begin strFilter := 'Text File (*.txt)|*.txt|All Files (*.*)|*.*'; { расширения либо *.txt, или *.* } end; procedure TForm1.MenuItem2Click(Sender: TObject); begin Memo1.Lines.Clear; { Очищает текстовое поле } end; { открытие файла } procedure TForm1.MenuItem3Click(Sender: TObject); begin OpenDialog1.Filter := strFilter; OpenDialog1.FilterIndex := 0; if OpenDialog1.Execute then begin Memo1.Lines.Clear; Memo1.Lines.LoadFromFile(OpenDialog1.FileName); end; end; { сохранение файла } procedure TForm1.MenuItem4Click(Sender: TObject); begin SaveDialog1.Filter := strFilter; SaveDialog1.FilterIndex := 0; if SaveDialog1.Execute then begin Memo1.Lines.SaveToFile(SaveDialog1.FileName); end; end; { Закрытие нашего приложения } procedure TForm1.MenuItem5Click(Sender: TObject); begin Close; end; end.
5. Настроим ScrollBars у TMemo, я выберу ssBoth:
6. Удалим текст из TMemo:
7. Поменяем название, иначе будет project1:
Для этого нажмём Project->Project Options..., и поменяем заголовок с project1 на Simple Notepad v1.0, и сменим иконку:
8. Поменяем иконку у Form1: