Тема. Dialogs. Списки файлов и каталогов. Программа «Блокнот»




Продолжим знакомство с компонентами Delphi. Следующий на очереди Memo – текстовое поле. Он так же расположен на закладке Standart.

 

 

Этот компонент предназначен для редактирования многострочного текста. Для иллюстрации работы этого, а так же некоторых других компонентов напишем простой текстовый редактор типа «Блокнот». И так, кладем на форму компонент Memo, Присваиваем ему идентификатор Notepad. Затем на форму размещаем компонент MainMenu (TMainMenu).

 

 

Присваиваем ему идентификатор Menu. В Object Inspector-е редактируем свойство Items, путем нажатия на кнопку вызова диалога редактирования свойства. У нас откроемся вот такое окно:

 

 

 

Курсор стоит на первом, еще не созданном пункте меню. Создадим его, введя в Object Inspector-е его идентификатор и заголовок.

 

 

У нас в окне появилась надпись «Файл». Слева от нее шаблон для нового пункта меню. Давайте и его введем. Идентификатор, заголовок «Редактирование». Теперь будем редактировать подменю.

 

 

Теперь нам нужен диалог открытия файла. Он находиться на закладке Dialogs.

 

 

У данного компонента есть свойство filter. Давайте отредактируем его, что бы наша программа открывала либо текстовые файлы, либо все файлы.

 

 

Создадим обработчик OnClick пункта меню «Открыть». Введем в нем такие строки:

 

if odOpenDialog.Execute then

Begin

memo1.Lines.LoadFromFile(odOpenDialog.FileName);

end;

В данном тексте вам встретилось новое ключевое слово «if». Это оператор условия. Если условие после него и до слова «then» выполняется, то запускается часть программs после слова «then». Что бы определить, до каких пор должна выполнятся программа после «then» существуют слова begin и end (начало и конец соответственно). Если условие не выполняется, то программа переходит сразу к той части. Которая стоит после блока, выполняющегося по условия. В данном случае там ничего не стоит. Иными словами, если функция Execute компонента OpenDilaog вернет false, а это произойдет только в том случае, когда пользователь просто закрыл диалог, не выбрав никакого файла, то программа ничего делать не будет.

И так, давайте испытаем нашу программу. Запустите ее и через пункт меню «Файл»  «Открыть» откроем какой нибудь текстовый файл.

Выполнение и разработка проекта с использованием раздаточного материала (сборника проектов на языке программирования Delphi)

 

 

Компоненты используемы в программе MainMenu (Главное меню), OpenDialog, SaveDialog, FontDialog, FindDialog, ReplaceDialog компонент Memo1.

 

Implementation

 

uses Unit3, Unit4, Unit5, Unit2;

 

{$R *.dfm}

 

procedure TForm1.Close1Click (Sender: TObject);

begin

if SaveDialog1.Execute then // Если запущен диалог

Memo1.Lines.SaveToFile(SaveDialog1.FileName); // Загружаем файл

end;

 

procedure TForm1.font1Click(Sender: TObject);

Begin

FontDialog1.Execute;

Memo1.Font:=Fontdialog1.Font;

end;

 

procedure TForm1.Undo1Click(Sender: TObject);

Begin

Memo1.Undo; // отмена действия

end;

 

procedure TForm1.Copy1Click(Sender: TObject);

Begin

Memo1.CutToClipboard; // команда вырезать

end;

 

procedure TForm1.Copy2Click(Sender: TObject);

Begin

Memo1.CopyToClipboard; // команда копировать

end;

 

procedure TForm1.Paste1Click(Sender: TObject);

Begin

Memo1.PasteFromClipboard; // команда вставить

end;

 

procedure TForm1.Open1Click(Sender: TObject);

Begin

if OpenDialog1.Execute then // Если запущен диалог

Memo1.Lines.LoadFromFile(OpenDialog1.FileName); // Загружаем файл

end;

 

procedure TForm1.SelectAll1Click(Sender: TObject);

Begin

Memo1.SelectAll; // Выделяем весь текст в мемо

end;

 

procedure TForm1.N12Click(Sender: TObject); // процедура для переноса по словам

Begin

if N12.Checked = False then

Begin

N12.Checked:= True;

Memo1.ScrollBars:= ssVertical;

end

else

begin

N12.Checked:= False;

Memo1.ScrollBars:= ssBoth;

end;

end;

 

 

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

Begin

if MessageDlg('Закрыть приложение?', mtConfirmation,

[mbYes, mbNo], 0) = mrYes then

Action:= caFree

else

Action:= caNone;

end;

 

End.

 

Что обозначают выражения?

 

if SaveDialog1.Execute then // Если запущен диалог

Memo1.Lines.SaveToFile(SaveDialog1.FileName); /

 

if OpenDialog1.Execute then // Если запущен диалог

Memo1.Lines.LoadFromFile(OpenDialog1.FileName); // Загружаем файл

 




Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-04-04 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: