- •Белорусский национальный технический университет
- •Конспект лекций по курсу «конструирование программ и языки программирования»
- •1. Введение Общие понятия
- •Недостатки ms-dos
- •Преимущества Windows
- •Основные концепции Windows
- •Объекты Windows
- •Механизмы сообщения
- •2. Основы визуального программирования в delphi Принцип создания приложений в Delphi
- •Процесс создания исполняемого файла в Delphi
- •3. Стандартные визуальные компоненты Формы
- •4. События, обрабатываемые формой
- •5. Свойства стандартных компонент Общие сведения
- •Компонент Tlabel
- •Компонент tButton
- •Компонент tEdit
- •Компонента tMemo
- •Компонента tCheckBox Это кнопка с независимой фиксацией. Такой компонент обладает следующими свойствами:
- •Компонент tRadioGroup
- •Компонент tСheckListBox
- •Компонент tPanel
- •К омпонент tScrollBar
- •К омпонент tMainMenu
- •Компонент tPopupMenu
- •Компонент tListBox
- •Компонент tComboBox
- •6. Графические компоненты Общие свойства
- •Компонент tImage (отображение картинок)
- •Компонент tShape (стандартные фигуры)
- •Компонент tBevel (кромка)
- •Компонент tChart (построитель графиков)
- •Компонент tPaintBox
- •Компонента tImage
- •Компонента tShape
- •Компонент tBevel
- •Поддержка графических операций
- •Свойство объектов Canvas
- •7. Табличное представление данных
- •Компонент tStringGrid
- •Компонент tDrawGrid
- •8. Дополнительные компоненты Компонент tBitBtn
- •Компонент tSpeedButton
- •Компонент tToolBar
- •9. Организация стандартных диалогов
- •Компонент tOpenDialog и tSaveDialog
- •Компонент tOpenPictureDialog и tSavePictuteDialog
- •Компонент tColorDialog
- •Компонент tFontDialog
- •Компонент tPrintDialog
- •10. Программирование печати документов
- •11. Вывод графических изображений
- •Компонент tProgressBar
- •Компонент tAnimate
- •Компонент tDateTimePicker
- •Компонент tMediaPlayer
- •Компонент tAnimate
- •Средства создания мультимедийных приложений Что такое мультимедиа
- •Компонент tMediaPlayer
- •Два вида программ мультимедиа
- •Пример программы с мультимедиа
- •Обработка исключительных ситуаций
- •Структурная обработка исключительных ситуаций
- •Модель исключительных ситуаций в Delphi
- •Синтаксис обработки исключительных ситуаций
- •Примеры обработки исключительных ситуаций
- •Вызов исключительной ситуации
- •Доступ к экземпляру объекта exception
- •Предопределенные обработчики исключительных ситуаций
- •Исключения, возникающие при работе с базами данных
- •Заключение
- •Создание и использование ini-файлов
- •Развертывание приложений. Локализация и интернационализация приложений
- •Литература
- •12. Управление программой с помощью панели инструментов
- •Компонент tImageList
- •Компонент tToolBar- инструментальная панель
- •13. Создание программы с несколькими формами и средства управления ими
- •14. Создание многостраничного документа
- •Литература
К омпонент tMainMenu
TMainMenu |
|
Стандартный интерфейс прикладной программы предусматривает, как правило, стандартное меню. В Windows есть два типа меню: главное и локальное. Главное реализуется компонентом TMainMenu, а локальное – PopupMenu.
На форму можно поместить сколь угодно объектов типа меню, отображается же в верхней части формы только одно главное меню, имя которого указывается в свойстве меню главной формы.
Компонента TMainMenu относится к не визуальной компоненте. Для создания непосредственно меню в Delphi предусмотрено свойство – дизайнер меню. Чтобы его активизировать, нужно дважды счелкнуть любой клавишей мыши по данной компоненте.
Как правило, главное меню содержит строку пунктов, каждый из которых может содержать вложенные (выпадающие) меню. Вначале дизайнер меню обозначает первый пункт меню. Чтобы ввести название этого пункта, необходимо перейти в инспектор объектов и в свойстве Caption набрать имя этого меню. После нажатия клавиши Enter появляется следующий пункт, работа с которым аналогична.
Для корректировки созданного меню можно щелкнуть мышью на выбранной опции правой кнопкой. При этом откроется окно, в котором предоставляются возможности Insert и Delete. Вставка осуществляется перед выделенной опцией, а удаляется выбранная опция.
Замечание
Если после Caption перед названием ввести символ &, то элемент, стоящий за знаком при выполнении программы будет подчеркнут и для данного компонента можно использовать композицию: (Alt)+(буква).
Чтобы отделить группу опций меню, следует очередному пункту меню присвоить имени в свойстве Caption символ (-).
Д ля создания разветвленных меню следует щелкнуть правой кнопкой мыши на данный код опции. При этом появляется локальное меню. В котором необходимо выбрать команду CreatSubmenu. При этом та подопция, которая содержит ссылку на подчиненное меню, имеет значок.
С каждой подопцией меню, содержащей команду, связано событие OnClick.
Пример
П усть требуется организовать управление программой с помощью следующей структуры меню. По активизации ‘Ввод данных’ будет появляться дополнительная форма, в которой будем вводить данные.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
File1: TMenuItem;
Edit1: TMenuItem;
Tools1: TMenuItem;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
Info1: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Info1Click(Sender: TObject);
procedure N6Click(Sender: TObject);
private
a, b, c : real;
{ Private declarations }
public
{ Public declarations }
end;
Var
Form1: TForm1;
implementation
uses Unit2, Unit3;
{$R *.DFM}
procedure TForm1.N1Click(Sender: TObject);
begin
Form2.ShowModal;
end;
//Чтобы форма2 была диалоговым окном при ее создании
//в инспекторе объектов необходимо присвоить свойству BorderStyle := Dialogs;
//Тогда эта форма не имеет никаких кнопок и является //диалоговым окном.
procedure TForm1.N2Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
c : = a + b;
PostProcessor1.Enabled := true;
end;
Замечание
При создании меню первоначально необходимо запретить доступ к пункту главного меню PostProcessor, так как сначала неизвестен результат. Сделать этот пункт доступным можно в обработчике, связанным с созданием формы.
procedure TForm1.FormCreate(Sender: TObject);
begin
PostProcessor1.Enabled := false;
end;
procedure TForm1.Info1Click(Sender: TObject);
begin
if c<>0 then MessageBox(0,'Результат получен','инф',тв-OK) else MessageBox(0,'Нет исходных данных','Информация',тв-OK);****************************
end;
procedure TForm1.N6Click(Sender: TObject);
begin
Form3.ShowModal;
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.DFM}
procedure TForm2.Button1Click(Sender: TObject);
begin
Form1.A := StrToFloat(Edit1.Text);
Form1.B := StrToFloat(Edit2.Text);
Сlose;
end;
end.
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TForm3 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.DFM}
procedure TForm3.Button1Click(Sender: TObject);
begin
Сlose;
end;
procedure TForm3.FormCreate(Sender: TObject);
begin
Edit1.Text := FloatToStr(Form1.0);
end;
end.