Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
ертханалык жумыс №5
№5 Зертханалық жұмыс . Мәзір құру. Main Menu және Popup Menu омпоненттері.
Жұмыстың мақсаты: Main Menu және Popup Menu басқару компоненттерімен танысу және осы компоненттерді Windows қосымшасын құруда қолдану.
Тапсырма:
Main Menu и Popup Menu
Әрбір Windows қосымшасының негізгі интерфейс атрибуты мәзір болып табылады. Мәзір бөлек функционалды категорияларға топтастырылған, өзіндік командалар жиынтығын береді. Басып алу функционалдылығының деңгейіне қарамастан негізгі мәзір және локальді мәзір деп ажыратады. Көптеген қосымшалардың жіберілетін операциялар тізімі бар негізгі мәзірі бар. Бастапқы мәзір пунктін басқаша нолдік деңгейлі мәзір элементі деп те атайды, себебі оның әрқайсысы бірінші деңгейлі элементі түсетін мәзірге байланысты болуы мүмкін. Негізгі мәзірді құру үшін Standard компоненттер палитрасының бетінде орналасқан Main Menu визуалды емес компоненті алынады.форманы жобалау деңгейіндегі бастапқы мәзірді құру үрдісі Menu Designer кірістірілген конструктор мәзірінің көмегімен іске асады. Мәзір конструктрын шақыру үшін Menu Designer командасын таңдап және тышканның оң жақ батырмасымен компонентке шертеміз немесе инспектор объектісіндегі Items қасиеттерімен қолданған жөн.
Main Menu ТMainMenu класының экземпляры болып табылады.
Класстың негізгі қасиеті- бұл қасиет.
Items: ТMenuItem; default; негізгі мәзір қосымшасының нолдік деңгей элементін құрайды.
Caption: string; мәзір элементінің мәтінін құрайды. Егер мәтін символының алдынан & символын орнатсақ, осылайша тез ауысу батырмасын беруімізге болады(акселератор). Егер Caption қасиетінің тақырып мәтініне «-» мәнін енгізсек, онда ағымдағы пункт орнына бөлу сызықшасы бейнеленеді.
Checked:Boolean; Егер қасиет True мәнді болса, онда элемент белгімен белгіленеді.
ShortCut: TshortCut; «горячих» батырмасының комбинациясын анықтайды. (тез басқару батырмасы).
Bitmap:TBitMap; бұл қасиет сол жақ бейнелі мәзір пунктінің тақырыпшасын толықтыру үшін. Ол үшін Bitmap қасиеті редакторын ашуымыз қажет және .bmp. кеңейтілуі бар графикалық файлды жүктеуіміз қажет.
Ішкі мәзір құру үшін мәзір элементін таңдап, тышқан батырмасының оң жағын шертеміз және контекстті мәзірден Create Submenu пунктін таңдаймыз, ары қарай ішкі мәзір пунктін енгіземіз.
Контекстті мәзір (немесе локальді ) берілген элементке тышқанның оң жақ батырмасын шертумен көрінеді. Контекстті мәзірді құру үшін Standard палитра компоненті бетінде орналасқан, PopupMenu компоненті қолданылады. Main Menu аналогты қасиеті бар.
Программаны өңдеу жоспары
5.1 6.1 суретіне сәйкес компоненттерді форма дизайнына орналастыру:
MainMenu1 Standard бетінен;
PopupMenu1 Standard бетінен;
Memo1- Standard бетінен;
Button1-5 Standard бетінен; caption қасиетіне 6.1. суретіне сәйкес мән тағайындау.
StringGrid1 Additional бетінен; қасиет беру: colcount - 5, rowcount 5, fixed row-0, fixed col 0, options goEditing true, options goTab true;
5.2 MainMenu1 компонентінен Items қасиетін таңдау. Батырмаға үш нүктемен шерту. Мәзір конструкторының терезесі шығады.Жоғарғы деңгейлі мәзір пункті горизонталь бойымен қалыптасады. Caption қасиеті келесі мәндерді береді: caption:=массивті өңдеу и caption:=сервис.
5.3 6.2. суретіне сәйкес келесі деңгейлі мәзір пунктын таңдаймыз. Массивті өңдеу пункты үшін max, min, sum. Max командасы үшін жылдам ауысу батырмасын беру (акселератор). Бұл жағдайда caption қасиеті &max мәнді болады. min командасы үшін «горячую» батырмасын беру: ShortCut қасиетін таңдап және шығатын тізімдер ішінен керекті мәнді таңда, мысалы, Ctrl+M.
Сурет 5.1
Сурет 5.2
5.4 Сервис мәзір пункті үшін clear және close командаларын қосу(сурет 6.3). Сlear командасы бойынша ішкі мәзір ашылу үшін келесілерді орындау қажет. Сlear командасын ерекшелеп, тышқанның оң жақ батырмасын шертеміз және ашылған конструктордың контекстті мәзірінде Create Submenu командасын таңдап аламыз және ары қарай ішкі мәзір пунктін енгіземіз: clear stringgrid және clear memo.
Сурет 5.3
5.5 Мәзір таңдау пунктінің әсер етуін аныұтау үшін мәзір пункты таңдалынып шерту қажет. Нәтижесінде OnClick оқиғасы өңдеу оқиғасының коды енгізілетін код редактор терезесі пайда болады. Мысалы, max мәзір элементі үшін OnClick өңдеу оқиғасы келесі түрде болады:
procedure TForm1.max1Click(Sender: TObject);
var max:integer; i,j:integer;
begin
max:=a[1,1];
for i:=1 to 5 do
for j:=1 to 5 do
if a[i,j]>=max then max:=a[i,j];
memo1.Lines.Add('max value ='+ inttostr(max));
end;
Аналогично вводятся коды обработчиков события для остальных команд менюҚалған команда мәзірі үшін, массив өңделуі min и sum, және сервис мәзірінен clear stringgrid командасы аналогты түрде оқиға өңделу коды енгізіледі.
5.6 Stringgrid1 кестесінен массив элементін енгізу үшін арналған Start батырмасын белсендендіру, OnClick өңдеу оқиғасының кодын жазу:
procedure TForm1.Button4Click(Sender: TObject);
var i,j:integer;
begin
for i:=1 to 5 do
for j:=1 to 5 do
a[i,j]:=strtoint(stringgrid1.Cells[j-1,i-1]);
end;
5.7 memo тазалауға арналған, Сlear memo батырмасын белсендендіру.
5.8Форманы жабуға арналған Close (button6) батырмасын белсендендіру.
5.9 Сервис мәзіріндегі Close командасы үшін алдын ала құрылған 5.8 пунктіндегі Button6Click процедурасы қолданылады. Сlose1Click (сервис мәзіріндегі close командсы) өңдеу оқиғасы келесідей түрде болады:
procedure TForm1.close1Click(Sender: TObject);
begin
button6Click(button6);
end;
Сервис мәзіріндегі clear memo командасынан аналогты түрде 5.7. пунктінде құрылған процедура шақырылады.
5.10 max (Button1) және min(Button2)батырмалары үшін сәйкес max1Click(max1) және min1Click(min1) процедуралары шақырылады;
procedure TForm1.Button1Click(Sender: TObject);
begin
max1Click(max1);
еnd;
5.11 Жобаны menu папкасында сақтап, орындауға жібереміз.
5.12Контекстті мәзір құру. Popup Menu компонентінің Items қасиетінде контекстті мәзір элементтерін береміз: бастапқы мәзірдегідей: max, min, sum, clear stringgrid, close;
6.13 Контекстті мәзірдің max элементі үшін OnClick ке әсер ету дәл негізгі мәзірдің max элементіндей болады. Контексті мәзірдің max элементі үшін OnClick қңдеу оқиғасы келесі түрде болады:
procedure TForm1.max2Click(Sender: TObject);
begin
max1Click(max1);
end;
Контекстті мәзірдің қалған элементтерінен негізгі мәзір процедуралары шақырылады.
5.14Локальды мәзір Form1 формасының барлық нүктелерінде қол жетімді болу үшін оның PopupMenu1.- ге тең PopupMenu қасиетін орнатуымыз қажет.
5.15 Жобаны сақтап, орындауға жіберу. Оң батырма шертпесі локальді мәзірді белсендендіреді.
Unit1.pas модуль мәтіні
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, Grids;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
PopupMenu1: TPopupMenu;
StringGrid1: TStringGrid;
Button1: TButton;
Button2: TButton;
Memo1: TMemo;
Button6: TButton;
N1: TMenuItem;
max1: TMenuItem;
min1: TMenuItem;
sum: TMenuItem;
N2: TMenuItem;
clear1: TMenuItem;
clearstringgrid1: TMenuItem;
clearmemo1: TMenuItem;
close1: TMenuItem;
Button7: TButton;
Button3: TButton;
max2: TMenuItem;
min2: TMenuItem;
sum1: TMenuItem;
memoclear1: TMenuItem;
close2: TMenuItem;
procedure Button7Click(Sender: TObject);
procedure max1Click(Sender: TObject);
procedure min1Click(Sender: TObject);
procedure sumClick(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure close1Click(Sender: TObject);
procedure clearstringgrid1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure clearmemo1Click(Sender: TObject);
procedure max2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1; a:array [1..5,1..5] of integer;
implementation
{$R *.dfm}
procedure TForm1.Button7Click(Sender: TObject);
var i,j:integer;
begin
for i:=1 to 5 do
for j:=1 to 5 do
a[i,j]:=strtoint(stringgrid1.Cells[j-1,i-1]);
end;
procedure TForm1.max1Click(Sender: TObject);
var max:integer; i,j:integer;
begin
max:=a[1,1];
for i:=1 to 5 do
for j:=1 to 5 do
if a[i,j]>=max then max:=a[i,j];
memo1.Lines.Add('max value ='+ inttostr(max));
end;
procedure TForm1.min1Click(Sender: TObject);
var min:integer; i,j:integer;
begin
min:=a[1,1];
for i:=1 to 5 do
for j:=1 to 5 do
if a[i,j]<=min then min:=a[i,j];
memo1.Lines.Add('min value ='+ inttostr(min));
end;
procedure TForm1.sumClick(Sender: TObject);
var sum:integer; i,j:integer;
begin
sum:=0;
for i:=1 to 5 do
for j:=1 to 5 do
sum:=sum+a[i,j];
memo1.Lines.Add('sum ='+ inttostr(sum));
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
max1Click(max1);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
min1Click(min1);
end;
procedure TForm1.close1Click(Sender: TObject);
begin
button6Click(button6);
end;
procedure TForm1.clearstringgrid1Click(Sender: TObject);
var i,j:integer;
begin
for i:=0 to 4 do
for j:=0 to 4 do
StringGrid1.Cells[j,i]:=' ';
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
memo1.Clear;
end;
procedure TForm1.clearmemo1Click(Sender: TObject);
begin
button3Click(button3);
end;
procedure TForm1.max2Click(Sender: TObject);
begin
max1Click(max1);
end;
end.
5- ші зертханалық жұмысқа тапсырма
4 зертханалық жұмысқа 2 тапсырманы орындау, бірақ команданы шақыру үшін мәзір, контекстті мәзір және батырма қлданылады.
PAGE 10