Компиляция и запуск программы




Для компиляции программы с последующим ее выполнением можно нажать клавишу <F9>, щелкнуть на кнопке Run панели инструментов или выполнить команду меню Run ð Run.

Файл программы, созданный в результате компиляции, будет назван в соответствии с именем файла проекта, в данном случае— Notebook.ехе.

7. Файл ð Close All.


8. Выполните самостоятельно:

8.1. Поместите на форму компонент Panel, присвойте свойству Align значение alTop. Удалите строку из свойства Caption.

8.2.. Поместите на Panel четыре компонента Button (кнопка) и присвойте их свойству Caption соответственно значения &Open, &Save, Save &As …, E&xit. Определите свойство Font для панели из кнопок как «жирный »

8.3.. Измените заголовок формы (свойство Caption) –, My Editor

8.4. Каждый пункт меню кроме Новый свяжите с уже существующим методом OnClick для соответствующих кнопок. Например, кнопка Open имеет имя Button1, поэтому на странице Events окна Object Inspector для пункта меню Open вы щелкните на клавише открытия списка, расположенной рядом с OnClick и выберите Button1.Click.

8.5. Добавьте еще один пункт меню Цвет, и в нем два подпункта Цвет фона и Цвет текста.

8.6. Поместите на форму компонент ColorDialog, находящийся в палитре Dialogs.

8.7. В обработчик пункта меню Цвет фона вставьте следующий код:

with ColorDialog1 do

if Execute then

memo1.Color:=color;

8.8. В обработчик пункта меню Цвет текста вставьте следующий код:

with ColorDialog1 do

if Execute then

memo1.Font.Color:=color;

8.9. Создайте для формы обработчик события OnCloseQuery:

if txt .Modified then

case MessageDlg('Файл'+ExtractFileName(SaveDialog1.FileName)+

'был изменен. Сохранить?',mtConfirmation,mbYesNoCancel,0) of

idYes: button2Click(Sender);

idNo:;

idCancel:CanClose:=false;

end;

8.10. Установитена панели Panel три кнопки SpeedButton.

Кнопки SpeedButton имеют возможность отображения пиктограмм и могут использоваться как обычные управляющие кнопки или как кнопки с фиксацией нажатого состояния. Изображение на кнопке задается свойством Glyph.

Особенностью кнопок SpeedButton являются свойства GroupIndex (индекс группы), AllowAllUp (разрешение отжатого состояния всех кнопок группы) и Down (исходное состояние — нажатое). Если GroupIndex = 0, то кнопка ведет себя так же, как Button и BitBtn. При нажатии пользователем кнопки она погружается, а при отпускании возвращается в нормальное состояние. В этом случае свойства AllowAllUp и Down не влияют на поведение кнопки.

Если Grouplndex > 0 и AllowAllUp = true, то кнопка при щелчке пользователя на ней погружается и остается в нажатом состоянии. При повторном щелчке пользователя на кнопке она освобождается и переходит в нормальное состояние (именно для того, чтобы освобождение кнопки состоялось, необходимо задать AllowAllUp = true). Если свойство Down во время проектирования установлено равным true, то исходное состояние кнопки — нажатое.

Если есть несколько кнопок, имеющих одинаковое ненулевое значение GroupIndex, то они образуют группу взаимосвязанных кнопок из которых нажатой может быть только одна. Если одна кнопка находится в нажатом состоянии и пользователь щелкает на другой, то первая кнопка освобождается, а вторая фиксируется в нажатом состоянии.

Состояние кнопки во время выполнения можно определить по значению свойства Down: если значение равно true, то кнопка нажата. Во время события OnClick значение Down уже равно тому состоянию, которое примет кнопка в результате щелчка на ней.

8.11. В свойства Caption этих кнопок введите буквы Ж (жирный), К (курсив), П (подчеркнутый) соответствующим образом изменив тип начертания в свойстве Font.

8.11.1. Выделите все три кнопки и установите их свойство AllowAllUp установим True.

8.11.2. Установите следующие свойства:

Компонент GroupIndex Tag
SpeedButton1    
SpeedButton2    
SpeedButton3    

8.11.3. В обработчик события OnClick для кнопки Ж введите:

with sender as TSpeedButton do

begin

if down then

memo1.Font.Style:=memo1.Font.Style+[TFontStyle(tag)]

else

memo1.Font.Style:=memo1.Font.Style-[TFontStyle(tag)]

end;

8.11.4. События OnClick для оставшихся двух кнопок свяжите с событием SpeedButton1Click при помощи Инспектора объектов, как в случае с пунктами меню.

8.12. Поместите на панель еще одну кнопку SpeedButton. В свойство Caption ничего не вводить. Выполните два щелчка на свойстве Glyph. В появившемся диалоговом окне выберите команду Load и из каталога Program Files/Common Files/Borland Shared/Images/Buttons загрузите файл Font.bmp или любой другой.

8.12.1. В обработчике OnClick написать следующий код:

with fontdialog1 do

if execute then memo1.Font:=font;

8.13. Поместите на панель еще три кнопки SpeedButton, которые будут отвечать за выравнивание текста по левому краю, по правому краю и по центру.

8.14. Задайте их свойства следующим образом:

Компонент GroupIndex Tag
SpeedButton5    
SpeedButton6    
SpeedButton7    

8.15. В свойствах Caption введите «<», «>» и «=» соответственно.

8.15.1. Для 1-й кнопки создайте обработчик OnClick:

with sender as tspeedbutton do

memo1.Paragraph.Alignment:=TAlignment(tag)

8.15.2. Обработчики этого события для остальных кнопок свяжите с SpeedButton5Click

8.16. Сделайте так, чтобы файлы сохранялись в формате rtf

Компонент Memo позволяет хранить информацию только в формате txt, поэтому при закрытии файла все элементы форматирования пропадут. Поэтому замените компонент на позволяющий сохранять текст в формате rtf.

Для чего необходимо нажать Alt+F12. На экране появится окно с содержимым файла Unit1.dfm (данный файл ресурсов формы содержит все настройки формы, сделанные с помощью Инспектора объектов). Найдите в этом файле описание компонента object Memo1: T Memo и замените его на Memo1: TRichEdit. Затем снова нажмите Alt+F12. При компиляции согласитесь с тем, что вам предложит Delphi.

8.17. Установите на форму компонент StatusBar, находящийся в палитре Win32. Два раза щелкните на компоненте, чтобы перейти в окно редактирования StatusBar. В окне редактирования три раза нажмите кнопку Добавить, чтобы получить три панели на компоненте. На первых двух будет отображаться текущее состояние клавиш CapsLock и NumLock. На третьей – системное время.

 

8.18. Добавьте на форму компонент Timer, расположенный на палитре System. добавьте в список глобальных переменных KS: Tkeyboardstate

8.19. Создать обработчик OnTimer:

GetKeyBoardState(KS);

with StatusBar1 do

begin

if KS[VK_Capital]=1 then panels[0].Text:='CAP' else panels[0].Text:='';

if KS[VK_NumLock]=1 then panels[1].Text:='Num' else panels[1].Text:='';

StatusBar1.Panels[2].Text:=TimeToStr(Time);

end;

8.20. Чтобы не было секундной задержки после загрузки программы, для обработчика OnCreate формы выберем Timer1Timer.

8.21. Создайте контекстное меню.

8.21.1. Установите на форму компонент PopupMenu.

8.21.2. Создайте пункты – Cut, Copy, Paste.

8.21.3. В обработчики событий OnClick введите соответственно следующий код:

Для пункта Copy: Memo1. CopyToClipboard;

Для пункта Cut: Memo1. CutToClipboard;

Для пункта Paste: Memo1.PasteFromClipboard;

В свойстве Memo1 (txt) PopUpMenu выберем PopUpMenu1

Для того, чтобы недоступные команды (если текст не выделен или буфер пуст) выделялись серым цветом сделаем следующее. В список uses добавим модуль Clipbrd (он обеспечивает доступ к объекту Clipboard – буферу обмена).

8.21.4. Создадим обработчик OnPopUp для PopUpMenu

copy1.Enabled:=memo1.SelLength>0;

cut1.Enabled:=memo1.SelLength>0;

paste1.Enabled:=Clipboard.HasFormat((CF_TEXT);

8.22. Создайте кнопку для Зачеркнутого шрифта (свойство StylefsStrikeOut, т.е Tag =3)

8.23. Сделайте всплывающие подсказки для всех кнопок

8.24. Добавьте на панель кнопку для добавления маркеров. В обработчике OnClick для новой кнопки поместите код:

if (sender as TSpeedButton).down then

txt.Paragraph.Numbering:=nsBullet else

txt.Paragraph.Numbering:=nsNone

8.25. Используя свойство ShortCut пунктов меню назначьте им комбинации горячих клавиш, например – Открыть – Ctrl+O, Сохранить - Ctrl+S и т.п

8.26. Создайте кнопку Undo, при нажатии которой будет отменено последнее действие. В обработчике кнопки поместите код:

Memo1.Undo.

Если отменять нечего, кнопка должна быть недоступной (для этого используйте свойство Memo1.CanUndo.

8.27. Добавьте в контекстное меню пункты Выделить все (метод SelectAll) и Удалить (ClearSelection). Если операции недоступны, пункты должны быть неактивными. В первом случае можно использовать значение txt.text<>’’.


Калькулятор.

Разработаем программу калькулятора. Это будет не инженерный, а обычный калькулятор, поэтому над оформлением формы сильно мучаться не придется — она будет содержать всего лишь одно текстовое поле и 16 кнопок.

 

 
 

9. Создайте новый проект приложения: выполните команду меню File ðNew ð Application.

9.1. Разработка формы.

Присвойте значения некоторым свойствам формы Forml согласно таблице.

Свойство Значение Пояснение
Caption Калькулятор Заголовок формы
BorderStyle bsDialog Граница формы не позволяет изменять ее размеры — как у диалоговых окон
Height   Высота формы
Width   Ширина формы

9.2. Теперь разместим на форме компонент Edit (текстовое поле) со вкладки Standard палитры компонентов.

Присвоим свойствам компонента Editl значения согласно таблице.

Свойство Значение Пояснение
Text   Очищаем содержимое текстового поля
Left   Отступ слева
'Гор   Отступ сверху
Width   Ширина поля

9.3. Настал черед кнопок. Для этого можно было бы использовать обычный компонент Button со вкладки Standard, но вместо него мы воспользуемся компонентом BitBtn со вкладки Additional, чтобы надписи на кнопках можно было сделать цветными.

9.3.1. Разместим вначале на форму кнопку, соответствующую цифре 7, и присвоим ее свойствам BitBtn1 значения согласно таблице.

Свойства Значение Пояснение
Caption   Надпись на кнопке
Left   Отступ слева
Top   Отступ сверху
Width   Ширина кнопки
Font.Size   Делаем шрифт надписи крупнее
Font.Color c1Blue Выделяем надпись синим цветом

 

9.3.2. Разместим на форме остальные кнопки, соответствующие цифрам калькулятора. Для этого можно просто выделить уже созданную кнопку, скопировать ее в буфер обмена (например, нажав комбинацию клавиш <Ctrl+C>) или выполнив команду меню Edit ð Copy), а затем вста­вить из буфера обмена требуемое количество раз, нажав комбинацию клавиш <Ctrl+V> или выполнив команду меню Edit ð Paste.

9.3.3. Присвоим свойству Caption каждой кнопки соответствующее значение, а значения свойств Left и Тор установим, руководствуясь таблицей Координат цифровых кнопок калькулятора

Caption                  
Left                  
Top                  

9.3.4. Разместим на форме кнопки, соответствующие сбросу ("СЕ") и знаку равно ("="). Изменим их свойства Caption, а также Left (для кнопки СЕ - 40, для кнопки = - 76) и Тор (116). Свойству Font.Color присвоим значение clRed (надписи будут выделены красным цветом).

9.3.5. Напоследок разместим на форме еще четыре кнопки BitBtn, соответствующие арифметическим действиям сложения (свойство Caption = +), вычитания (Caption = -), деления (Caption — /) и умножения (Caption = *). Свойству Width каждой из кнопок присвоил значение 37, свойству Left значение 124, а свойству Font.Color — значение clNavy(сиреневый). Значения свойства Тор соответствуют цифровым кнопкам калькулятора (32, 60, 88 и 116).

Объявление переменных.

Теперь перейдем в редактор кода. Клавиша F12. Первым делом объявим все переменные, которые будем использовать в программе. Переменные объявляются в разделе var:

var

Form1: TForm1

numl, num2: integer; //для хранения первого и второго числа

doit: string; //действие, которое надо выполнить с числами



Поделиться:




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

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


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