1. Текстовый редактор с меню и панелями инструментов.
1) Создайте папку под новый проект.
2) Можно скопировать в папку с проектом, папку с иконками для кнопок и пунктов меню (Icons).
3) Создайте новый проект и сохраните его в созданную папку.
4) Оформите внешний вид окна: задайте заголовок «Текстовый редактор» (Caption), размеры (Width, Height) и положение (Top, Left) формы.
5) Разместите на форме:
- многострочное поле ввода – компонент TMemo (вкладка Standard);
- главное меню формы – компонент TMainMenu (вкладка Standard);
- контекстное меню – компонент TPopupMenu (вкладка Standard);
- панель инструментов – компонент TToolBar (вкладка Win32);
- хранилище изображений – компонент TImageList (вкладка Win32);
- диалог открытия файла – компонент TOpenDialog (вкладка Dialogs);
- диалог сохранения файла – компонент TSaveDialog (вкладка Dialogs).
6) Установите свойства компонента ImageList: Height = 24 и Width = 24, задающих размер изображений (иконок).
Щелкните дважды на компоненте ImageList (или выполните в контекстном меню компонента «ImageList Editor…») – откроется окно редактора хранилища изображений, добавьте с помощью кнопки «Add» изображения для кнопок и пунктов меню.
7) Щелкните дважды на компоненте MainMenu (или выполните в контекстном меню компонента «Menu Disagner…») – откроется редактор главного меню, с помощью которого можно задать его пункты и обработчики событий.
Внесите следующие пункты в строку главного меню (свойство Caption): «Файл», «Правка», «Вид», «О программе». Добавьте в каждое меню указанные ниже пункты. Для пункта «Стиль границ» добавьте вложенное меню (нажатие комбинации клавиш Ctrl+Right или команда «Create submenu» в контекстном меню для пункта) и впишите пункты: «Масштабируемое», «Диалоговое», «Без заголовка», «Управляемое», «Инструментальное», «Инструментальное диалоговое». Для вставки разделителя достаточно в свойство Caption указать значение «-».
8) Задайте свойства компонент:
9) Сохраните проект и запустите программу на исполнение.
2. Текстовый редактор с меню
1) Создайте папку под новый проект.
2) Создайте новый проект и сохраните его в созданную папку.
3) Оформите внешний вид окна: задайте заголовок «Текстовый редактор» (Caption), размеры (Width, Height) и положение (Top, Left) формы.
4) Разместите на форме:
- многострочное поле ввода – компонент TMemo (вкладка Standard);
- главное меню формы – компонент TMainMenu (вкладка Standard).
5) Установите для компонента Memo свойство Align=alClient.
6) Задайте обработчик события на создание формы, в котором будет очищаться содержимое компонента Memo. введите указанный программный код (выделено жирным):
procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Clear;
end;
7) Щелкните дважды на компоненте MainMenu (или выполните в контекстном меню компонента «Menu Disagner…») – откроется редактор главного меню, с помощью которого можно задать его пункты и обработчики событий.
Внесите следующие пункты в строку главного меню (свойство Caption): «Файл», «Редактирование», «О программе». Пункты «Файл» и «Редактирование» должны содержать вложенное меню следующей структуры:
8) Запустите программу на исполнение:
9) Для того чтобы задать обработчики событий для пунктов меню, вернитесь в визуальную среду программирования и войдите в редактор меню. Выберите пункт меню и дважды щелкните на нем (или в окне Инспектора объектов на вкладке Events выберите событие onClick). Появится окно редактора кода с заготовкой обработчика события. Создайте обработчики событий со следующими кодами:
10) Обратите внимание, что при выборе пункта «Файл – Открыть» идет обращение к Form2, которой нет. Для того чтобы создать новую форму выполните в меню ИСР Delphi пункт «File – New – Form». У вас появится форма под именем Form2.
11) Измените заголовок формы Form2 свойство Caption="Открытие файла". Задайте стиль границ BorderStyle=bsDialog.
12) Разместите на форме Form2:
- графическую кнопку – TBitBtn (вкладка Additional), для которой установите свойство Kind=bkClose;
- компоненты для управления файлами – компоненты DriveComboBox, DirectoryListBox, FileListBox (вкладка Win 3.1).
Расположите компоненты так, чтобы получить форму следующего вида:
13) Создайте следующие обработчики событий для каждого из компонентов для управления файлами:
14) Переключаться между формами (и окнами кода) можно в Менеджере проекта (Project Manager). Вызвать окно Менеджера проекта можно, выполнив «View – Project Manager» (или нажатием Ctrl+Alt+F11). Также переключение между окнами можно выполнить в отдельном диалоге «View – Forms…» (или нажатием Shift+F12).
15) При обращении к добавленной форме, в первой форме Form1 необходимо в разделе Uses добавить объявление модуля второй формы – Unit2 (если имя не изменялось при сохранении), а во второй Form2 добавить в разделе Uses объявление модуля первой формы – Unit1 (если имя не изменялось при сохранении). Данную операцию подключения Delphi предлагает выполнить в случае, если существует в коде ссылка на неподключенную форму (модуль). Также подключение существующей формы (его модуля) можно выполнить в ИСР Delphi – «File – Use Unit…» (или нажатием Alt+F11).
16) Сохраните проект и запустите программу на исполнение.
1) Создайте папку под новый проект.
2) Можно скопировать в папку с проектом, папку с иконками для кнопок и пунктов меню (Icons).
3) Создайте новый проект и сохраните его в созданную папку.
4) Оформите внешний вид окна: задайте заголовок «Текстовый редактор» (Caption), размеры (Width, Height) и положение (Top, Left) формы.
5) Разместите на форме:
- многострочное поле ввода – компонент TMemo (вкладка Standard);
- главное меню формы – компонент TMainMenu (вкладка Standard);
- контекстное меню – компонент TPopupMenu (вкладка Standard);
- панель инструментов – компонент TToolBar (вкладка Win32);
- хранилище изображений – компонент TImageList (вкладка Win32);
- диалог открытия файла – компонент TOpenDialog (вкладка Dialogs);
- диалог сохранения файла – компонент TSaveDialog (вкладка Dialogs).
Щелкните дважды на компоненте ImageList (или выполните в контекстном меню компонента «ImageList Editor…») – откроется окно редактора хранилища изображений, добавьте с помощью кнопки «Add» изображения для кнопок и пунктов меню.
Внесите следующие пункты в строку главного меню (свойство Caption): «Файл», «Правка», «Вид», «О программе». Добавьте в каждое меню указанные ниже пункты. Для пункта «Стиль границ» добавьте вложенное меню (нажатие комбинации клавиш Ctrl+Right или команда «Create submenu» в контекстном меню для пункта) и впишите пункты: «Масштабируемое», «Диалоговое», «Без заголовка», «Управляемое», «Инструментальное», «Инструментальное диалоговое». Для вставки разделителя достаточно в свойство Caption указать значение «-».
Файл | Открыть Сохранить - Выход |
Правка | Отменить - Копировать Вырезать Вставить |
Вид | Поверх всех окон Стиль границ > Масштабируемое Диалоговое Без заголовка Управляемое Инструментальное Инструментальное диалоговое |
О программе |
Компонент | Свойства | Обработчик |
TImageList | Name = ilMain | |
TMainMenu | Name = mmMain Images = ilMain | |
TMenuItem | Name = miFile Caption = '&Файл' | |
TMenuItem | Name = miFileOpen Caption = '&Открыть' ImageIndex = выбрать в списке ShortCut = Ctrl+O | procedure TForm1.miFileOpenClick(Sender: TObject); begin if odMain.Execute then memMain.Lines.LoadFromFile(odMain.FileName); end; |
TMenuItem | Name = miFileSave Caption = '&Сохранить' ImageIndex = выбрать в списке ShortCut = Ctrl+S | procedure TForm1.miFileSaveClick(Sender: TObject); begin if sdMain.Execute then memMain.Lines.SaveToFile(sdMain.FileName); end; |
TMenuItem | Name = miFileSep Caption = '-' | |
TMenuItem | Name = miFileClose Caption = 'В&ыход' ImageIndex = выбрать в списке ShortCut = Ctrl+Q | procedure TForm1.miFileCloseClick(Sender: TObject); begin Close end; |
TMenuItem | Name = miEdit Caption = '&Правка' | |
TMenuItem | Name = miEditUndo Caption = &Отменить ImageIndex = выбрать в списке ShortCut = Ctrl+Z | procedure TForm1.miEditUndoClick(Sender: TObject); begin if memMain.CanUndo then memMain.Undo; end; |
TMenuItem | Name = miEditSep Caption = '-' | |
TMenuItem | Name = miEditCopy Caption = '&Копировать' ImageIndex = выбрать в списке ShortCut = Ctrl+C | procedure TForm1.miEditCopyClick(Sender: TObject); begin memMain.CopyToClipboard; end; |
TMenuItem | Name = miEditCut Caption = 'Вырез&ать' ImageIndex = выбрать в списке ShortCut = Ctrl+X | procedure TForm1.miEditCutClick(Sender: TObject); begin memMain.CutToClipboard; end; |
TMenuItem | Name = miEditPaste Caption = '&Вставить' ImageIndex = выбрать в списке ShortCut = Ctrl+V | procedure TForm1.miEditPasteClick(Sender: TObject); begin memMain.PasteFromClipboard; end; |
TMenuItem | Name = miView Caption = '&Вид' | |
TMenuItem | Name = miViewStayOnTop AutoCheck = True Caption = 'Поверх всех окон' | procedure TForm1.miViewStayOnTopClick(Sender: TObject); begin if miViewStayOnTop.Checked then Form1.FormStyle := fsStayOnTop else Form1.FormStyle := fsNormal; end; |
TMenuItem | Name = miViewBorderStyle Caption = 'Стиль границ' | |
TMenuItem | Name = miViewSizeable AutoCheck = True Caption = 'Масштабируемое' Checked = True Default = True GroupIndex = 1 RadioItem = True | procedure TForm1.miViewSizeableClick(Sender: TObject); begin if miViewSizeable.Checked then Form1.BorderStyle := bsSizeable; if miViewDialog.Checked then Form1.BorderStyle := bsDialog; if miViewNone.Checked then Form1.BorderStyle := bsNone; if miViewSingle.Checked then Form1.BorderStyle := bsSingle; if miViewSizeToolWin.Checked then Form1.BorderStyle := bsSizeToolWin; if miViewToolWindow.Checked then Form1.BorderStyle := bsToolWindow; end; Обработчик создается только для одного пункта меню (в коде – miViewSizeable). Для остальных пунктов выбирается из комбинированного списка в поле OnClick на вкладке Events Инспектора объектов. |
TMenuItem | Name = miViewDialog AutoCheck = True Caption = 'Диалоговое' GroupIndex = 1 RadioItem = True | |
TMenuItem | Name = miViewNone AutoCheck = True Caption = 'Без заголовка' GroupIndex = 1 RadioItem = True | |
TMenuItem | Name = miViewSingle AutoCheck = True Caption = 'Управляемое' GroupIndex = 1 RadioItem = True | |
TMenuItem | Name = miViewSizeToolWin AutoCheck = True Caption = 'Инструментальное' GroupIndex = 1 RadioItem = True | |
TMenuItem | Name = miViewToolWindow AutoCheck = True Caption = 'Инструментальное диалоговое' GroupIndex = 1 RadioItem = True | |
TMenuItem | Name = miAbout Caption = '&О программе' ImageIndex = выбрать в списке ShortCut = Ctrl+B | procedure TForm1.miAboutClick(Sender: TObject); begin MessageDlg('Автор: Баночкин Федор Батькович', mtInformation,[mbOk],0) end; |
TPopupMenu | Name = pmMain Images = ilMain | |
TMenuItem | Name = miCopy Caption = 'Копировать' ImageIndex = выбрать в списке | procedure TForm1.miCopyClick(Sender: TObject); begin miEditCopyClick(Sender); end; |
TMenuItem | Name = miCut Caption = 'Вырезать' ImageIndex = выбрать в списке | procedure TForm1.miCutClick(Sender: TObject); begin miEditCutClick(Sender); end; |
TMenuItem | Name = miPaste Caption = 'Вставить' ImageIndex = выбрать в списке | procedure TForm1.miPasteClick(Sender: TObject); begin miEditPasteClick(Sender); end; |
TMemo | Name = memMain Align = alClient Lines = очистить PopupMenu = pmMain ScrollBars = ssBoth | |
TToolBar | Name = tbMain AutoSize = True Images = ilMain | |
TToolButton | Name = ToolButton1 ImageIndex = выбрать в списке MenuItem = miFileOpen | Кнопка добавляется через контекстное меню панели инструментов (TToolBar), в котором необходимо выбрать пункт «New Button». |
TToolButton | Name = ToolButton2 ImageIndex = выбрать в списке MenuItem = miFileSave | |
TToolButton | Name = ToolButton3 ImageIndex = выбрать в списке Style = tbsSeparator | Разделитель кнопок добавляется через контекстное меню панели инструментов (TToolBar), в котором необходимо выбрать пункт «New Separator». |
TToolButton | Name = ToolButton4 ImageIndex = выбрать в списке MenuItem = miEditUndo | |
TToolButton | Name = ToolButton5 ImageIndex = выбрать в списке Style = tbsSeparator | |
TToolButton | Name = ToolButton6 ImageIndex = выбрать в списке MenuItem = miEditCopy | |
TToolButton | Name = ToolButton7 ImageIndex = выбрать в списке MenuItem = miEditCut | |
TToolButton | Name = ToolButton8 ImageIndex = выбрать в списке MenuItem = miEditPaste | |
TToolButton | Name = ToolButton9 ImageIndex = выбрать в списке Style = tbsSeparator | |
TToolButton | Name = ToolButton10 ImageIndex = выбрать в списке MenuItem = miFileClose | |
TOpenDialog | Name = odMain DefaultExt = 'txt' Filter = 'Текстовые файлы (*.txt)|*.txt|Все файлы (*.*)|*.*' | |
TSaveDialog | Name = sdMain DefaultExt = 'txt' Filter = 'Текстовые файлы (*.txt)|*.txt|Все файлы (*.*)|*.*' |
1) Создайте папку под новый проект.
2) Создайте новый проект и сохраните его в созданную папку.
3) Оформите внешний вид окна: задайте заголовок «Текстовый редактор» (Caption), размеры (Width, Height) и положение (Top, Left) формы.
4) Разместите на форме:
- многострочное поле ввода – компонент TMemo (вкладка Standard);
- главное меню формы – компонент TMainMenu (вкладка Standard).
5) Установите для компонента Memo свойство Align=alClient.
6) Задайте обработчик события на создание формы, в котором будет очищаться содержимое компонента Memo. введите указанный программный код (выделено жирным):
procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Clear;
end;
7) Щелкните дважды на компоненте MainMenu (или выполните в контекстном меню компонента «Menu Disagner…») – откроется редактор главного меню, с помощью которого можно задать его пункты и обработчики событий.
Внесите следующие пункты в строку главного меню (свойство Caption): «Файл», «Редактирование», «О программе». Пункты «Файл» и «Редактирование» должны содержать вложенное меню следующей структуры:
Файл | Новый Открыть Сохранить Сохранить как… Выход |
Редактировать | Копировать Вырезать Вставить Выделить все |
8) Запустите программу на исполнение:
Пункт меню | Код обработчика |
Файл – Новый | var f: textfile; begin form1.Tag := 1; AssignFile(f,'c:\newfile.txt'); Rewrite(f); CloseFile(f); Form1.Caption := 'Редактор - newfile.txt'; form1.Memo1.Lines.LoadFromFile('c:\newfile.txt'); end; |
Файл – Открыть | Form1.Tag := 2; Form2.ShowModal; |
Файл – Сохранить | case Form1.Tag of 1 : Form1.Memo1.Lines.SaveToFile('c:\newfile.txt'); 2 : Form1.Memo1.Lines.SaveToFile(Form2.FileListBox1.FileName); end; |
Файл – Сохранить как… | var tmp: string; //объявление переменной begin tmp := InputBox('Сохранение файла','Введите имя файла',''); if tmp <> '' then begin form1.Memo1.Lines.SaveToFile(tmp+'.txt'); Form1.Caption := 'Редактор - '+tmp+'.txt'; end; end; |
Файл – Выход | Close; |
Редактирование – Копировать | Form1.Memo1.CopyToClipboard; |
Редактирование – Вырезать | Form1.Memo1.CutToClipboard; |
Редактирование – Вставить | Form1.Memo1.PasteFromClipboard; |
Редактирование – Выделить все | Form1.Memo1.SelectAll; |
О программе | MessageDlg('Программа редактирование текстовых файлов'+#10#13+ 'Автор: Баночкин Федор Батькович', mtInformation,[mbOk],0) |
10) Обратите внимание, что при выборе пункта «Файл – Открыть» идет обращение к Form2, которой нет. Для того чтобы создать новую форму выполните в меню ИСР Delphi пункт «File – New – Form». У вас появится форма под именем Form2.
11) Измените заголовок формы Form2 свойство Caption="Открытие файла". Задайте стиль границ BorderStyle=bsDialog.
12) Разместите на форме Form2:
- графическую кнопку – TBitBtn (вкладка Additional), для которой установите свойство Kind=bkClose;
- компоненты для управления файлами – компоненты DriveComboBox, DirectoryListBox, FileListBox (вкладка Win 3.1).
Расположите компоненты так, чтобы получить форму следующего вида:
Компонент | Событие | Процедура обработчика |
DriveComboBox | OnChange | procedure TForm2.DriveComboBox1Change(Sender: TObject); begin DirectoryListBox1.Drive:=DriveComboBox1.Drive; FileListBox1.Directory:=DirectoryListBox1.Directory; end; |
DirectoryListBox | OnChange | procedure TForm2.DirectoryListBox1Change(Sender: TObject); begin Form2.FileListBox1.Directory:=DirectoryListBox1.Directory; end; |
FileListBox | OnClick | procedure TForm2.FileListBox1Click(Sender: TObject); begin if FileExists(Form2.FileListBox1.FileName) then begin Form1.Caption:='Редактор - '+Form2.FileListBox1.FileName; Form1.Memo1.Lines.LoadFromFile(Form2.FileListBox1.FileName) end else MessageDlg('Файл не найден',mtInformation,[mbOk],0); Form2.Close; end; |
14) Переключаться между формами (и окнами кода) можно в Менеджере проекта (Project Manager). Вызвать окно Менеджера проекта можно, выполнив «View – Project Manager» (или нажатием Ctrl+Alt+F11). Также переключение между окнами можно выполнить в отдельном диалоге «View – Forms…» (или нажатием Shift+F12).
15) При обращении к добавленной форме, в первой форме Form1 необходимо в разделе Uses добавить объявление модуля второй формы – Unit2 (если имя не изменялось при сохранении), а во второй Form2 добавить в разделе Uses объявление модуля первой формы – Unit1 (если имя не изменялось при сохранении). Данную операцию подключения Delphi предлагает выполнить в случае, если существует в коде ссылка на неподключенную форму (модуль). Также подключение существующей формы (его модуля) можно выполнить в ИСР Delphi – «File – Use Unit…» (или нажатием Alt+F11).
16) Сохраните проект и запустите программу на исполнение.
Комментариев нет:
Отправить комментарий