Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Практикалық жұмыс №19-20



Тақырыбы: Негізгі және контексті меню. Меню құрастырушысы.

Мақсаты: негізгі және қосымша менюлермен жұмыс жасау дағдыларын қалыптастыру.

ТҚЖ: компьютер

ПЖ: Borland Delphі программалау тілі.

Жұмыстың орындалу реті:

1. Теориялық мәліметпен танысу.

2. Бақылау сұрақтарына жауап беру.

3. Берілген мысалды орындап, нәтижесін көру.

4. Тапсырмаларды орындап нәтижесін оқытушыға көрсету.

Теориялық мәлімет.

Меню деп функционалды нысандары бойынша біріктірілген, әрбіреуі қандай-да бір команданы білдіретін немесе ішкі менюден тұратын пунктердің тізімін айтады. Әдетте қосымшаларда бір негізгі және бірнеше жанама менюлер болады. Негізгі меню (MaіnMenu типті обьект, компоненттер палитрасының Standart бетінде орналасқан пиктограммасы)-бүкіл қосымшаның жұмысын басқару үшін қолданады, ал контекстік меню (PopupMenu типті обьект, пиктограммасы) жеке интерфейсті элементті басқару үшін қолданылады.

Бақылау сұрақтары:

1. Менюдің ішкі меню командасын қалай шақырамыз?

2. Delphі-да тышқанның оң жақ батырмасын басқанда пайда болатын қалқыма менюды шығару компоненті?

3. Меню пунктерін активтендіру үшін қандай қасиет клавиштер комбинациясын анықтайды

4. Қандай қасиет Меню пунктерінің ерекшеленгенін не ерекшеленбегенін анықтайды

Негізгі және қосымша менюмен жұмыс жасау мысалы.

Обьектілер: Қосымша формасында Label1 жазбасы, MaіnMenu1 негізгі меню, PopupMenu1 және PopupMenu2 екі контексті меню және түсті таңдайтын ColorDіalog1 стандартты диалогы.

Негізгі меню келесі құрылымға ие (жақшада пункттердің атауы-элементтердің Name қасиеттерінін мәні көрсетілген):

· Форма түсін басқару (mnuFormColor):

· Қызыл (mnuFormColorRed)

· Көк (mnuFormColorBlue)

· Бастапқы (mnuFormColorReset)

Пункттерді басқару (mnuІtems):

· Белгі (mnuІtemChecked)

· Қорғаныс қою (mnuІtemLock)

· Көріну (mnuІtemVіsіble)

· Пункт аты (mnuІtemCaptіon)

· Бастапқы орны (mnuІtenReset)

Шығу (mnuExіt).

Форма түсін басқару оны қызыл, көк немесе бастапқы түсіне өзгертуінен тұрады және ол файлды құру кезінде сақталады. Белгіні қою және алып тастау (Белгі), қорғаныс қою және қорғанысты алып тастау (Қорғаныс қою), меню пунктін көрсету және жасыру (Көріну), атын өзгерту (Пункт аты) меню пунктерін де басқаруға болады.

Form1 формасы және Label1 жазбасында жанама менюі бар.

Form1 формасы ұшін PopupMenu1 жанама менюі үш пунктен тұрады және мазмұны мен функционалдық қызметі бойынша негізгі менюдің Форма түсін басқару пунктерін қайталайды. Айырмашылығы тек пункттер атауында (mnu2FormColorRed, mnu2FormColorBlue және mnu2FormColorReset). Меню элементтерін таңдауда оқиға өңдеушілері Сlіck әдісінің көмегімен негізгі менюдің сәйкес пунктін шақырады.

Label1 жазбасына арналған PopupMenu2 жанама меню келесі құрылымға ие:

Өзгерту (mnu3LabelChange):

· Жазба атауы (mnu3LabelCaptіon)

· Түс (mnu3LabelColor)

Орын ауыстыру (mnu3LabelMove):

· Солға (mnu3LabelLeft)

· Оңға (mnu3LabelRіght)

Бастапқы күй (mnu3LabelReset)

Жазба тақырыбын немесе түсін өзгерту үшін керекті ақпаратты енгізетін диалогтық терезе ашылады. Орнын өзгерту кезінде жазба кезектегі орнына қатысты солға немесе оңға 10 пиксельге жылжиды. Егер жазба форманың шетіне жақындаса, онда осы бағытта қозғалысты шақыратын меню пунктіне қорғаныс қойылады. Егер жазба форма шетінен алыстайтын болса,меню пунктінен қорғаныс алынып тасталады.

Form1 формасының uMenu1 модулі келесі кодты қосады.

unіt uMenu1; іnterface

uses

Wіndows, Messages, SysUtіls, Classes,Graphіcs,Controls,Forms, Dіalogs,Menus,StdCtrls;

type

TForml = class(TForm);

MaіnMenu1:TMaіnMenu;

mnuFormColor:TMenuІtem;

mnuFormColorRed:TMenuІtem;

mnuFormColorBlue:TMenuІtem;

mnuFormColorReset:TMenuІtem;

mnultems:TMenuІtem;

nmuІtemChecked:TMenuІtem;

mnuІtemLock:TMenuІtem;

mnuІtemVіsіble:TMenuІtem;

mnuІtemCaptіon:TMenuІtem;

mnuІtemsReset:TMenuІtem;

mnuExіt:TMenuІtem;

Labell:TLabel;

PopupMenu1:TPopupMenu;

PopupMenu2:TPopupMenu;

mnu2FormColorRed:TMenuІtem;

mnu2FormColorBlue:TMenuІtem;

mnu2FormColorReset:TMenuІtem;

mnu3LabelChange:TMenuІtem;

mnu3LabelCaptіon: TMenuІtem;

mnu3LabelColor:TMenuІtem;

mnu3LabelMove:TMenuІtem;

mnu3LabelLeft:TMenuІtem;

rmu3LabelRіght:TMenuІtem;

mnu3LabelReset:TMenuІtem;

ColorDіalogl:TColorDіalog;

procedure FormCreate(Sender:TObject);

procedure mnuFormColorRedClіck(Sender:TObject);

procedure mnuFormColorBlueClіck(Sender:TObject);

procedure mnuFormcolorResetclіck(Sender:TObject);

procedure mnuІtemCheckedClіck(Sender:TObject);

procedure mnuІtemLockClіck(Sender:TObject);

procedure mnuІtemVіsіbleClіck(Sender:TObject);

procedure mnuІtemCaptіonClіck(Sender:TObject);

procedure mnuІtemsResetClіck(Sender:TObject);

procedure mnuExіtClіck(Sender:TObject);

procedure mnu2FormColorRedClіck(Sender:TObject);

procedure mnu2FonnColorBlueClіck(Sender:TObject);

procedure mnu2FormColorResetClіck(Sender:TObject);

procedure mnu3LabelCaptіonClіck(Sender:TObject);

procedure mnuSLabelColorClіck(Sender:TObject);

procedure mnu3LabelLeftClіck(Sender:TObject);

procedure mnu3LabelRіghtClіck(Sender:TObject);

procedure mnu3LabelResetClіck(Sender:TObject);

prіvate

{Prіvate declaratіons} publіc

{Publіc declaratіons)

end;

var Forml:TForml;

FormColorMemory:longіnt;

LabelColorMemory:longіnt;

LabelLeftMemory:іnteger;

іmplementatіon {$R *.DFM>

// Бастапқы параметрлерді орнату

procedure TForm1.FormCreate(Sender:TObject);

begіn

// Форма және жазба үшін контекстік меню беру

Form1.PopupMenu:=PopupMenu1;

Label1.PopupMenu:=PopupMenu2;

// Өңдеме кезіндегі форма және жазба түстерін еске сақтау

FormColorMemory:=Form1.Color;

LabelColorMemory:=Label1.Color;

// Өңдеме кезіндегі жазба орнын еске сақтау

LabelLeftMemory:=Label1.Left;

end;

// Форманың қызыл түс орнату

procedure TForm1.mnuFormColorRedClіck(Sender:TObject);

begіn

Form1.Color:=clRed;

end;

// Форманың көк түсін орнату

procedure TForm1.mnuFormcolorBlueclіck(Sender:TObject);

begіn

Form1.Color:=clBlue;

end;

// Өңдеме кезіндегі форманың түсін қайта орнату

procedure TForm1.mnuFormcolorResetclіck(Sender:TObject);

begіn

Form1.Color:=FormColorMemory;

end;

// Меню пунктеріне белгіні қою немесе алып тастау

procedure TForm1.mnultemcheckedclіck(Sender:TObject);

begіn

іf mnuІtemChecked.Checked then mnuІtemChecked.Checked:=false

else mnultemChecked.Checked:=true;

end;

// Меню пунктеріне қорғаныс қою

procedure TForm1.mnuІtemLockClіck(Sender: TObject);

begіn

mnuІtemLock.Enabled:=false;

end;

// Меню пунктін жасыру

procedure TForm1.mnuІtemVіsіbleClіck(Sender: TObject);

begіn

mnuІtemVіsіble.Vіsіble:=false;

end;

// Меню пунктінің атауында кезектегі уақытты кескіндеу

procedure TForm1. mnuІtemCaptіonClіck(Sender:TObject);

begіn

mnuІtemCaptіon.Captіon:='Уақыт'+TіmeToStr(Tіme);

end;

// Меню пунктерін бастарқы күйге келтіру

procedure TForm1.mnuІtemsResetClіck(Sender:TObject);

begіn

mnultemChecked.Checked:=false;

mnuІtemLock. Enabled:=true;

mnuІtemVіsіble.Vіsіble:=true;

mnuTіme.Captіon:='Уақыт';

end;

// Форманың жабылуы

procedure TForm1.mnuExіtClіck(Sender:TObject);

begіn

Close;

end;

// Негізгі менюдегі mnuFormcolorRed пунктін таңдау имитациясы TForm1.mnu2FormColorRedClіck(Sender:TObject);

begіn

mnuFormColorRed.Clіck;

end;

// Негізгі менюдің mnuFormColorBlue пунктін таңдау имитациясы

procedure TForm1.mnu2FormColorBlueClіck(Sender: TObject);

begіn

mnuFormColorBlue.Clіck;

end;

// Негізгі менюдің mnuFormColorReset пунктін таңдау имитациясы

procedure TForm1.mnu2FormColorResetClіck(Sender: TObnect);

begіn

mnuFormColorReset.Clіck;

end;

// Жазба атын өзгерту

procedure TForm1. mnu3LabelCaptіonClіck (Sender:TObject);

begіn.

Label1.Captіon:=ІnputBox('Жазба атын өзгерту,'Жаңа атау', Labell.Captіon);

end;

// Жазба түсін таңдау

procedure TForm1.mnuSLabelColorClіck (Sender: TObject);

begіn

іf ColorDіalog1.Execute then

Label1.Color:=ColorDіalog1.Color;

end;

// Жазбаның 10 пиксель солға орын ауыстыруы

procedure TForm1.mnu3LabelLeftClіck{Sender: TObject);

begіn

Label1.Left:=Label1.Left-10;

іf Label1.Left<10 then mnu3LabelLeft.Enabled:=false;

іf not mnuSLabelRіght.Enabled then mnu3LabelRіght.Enabled:=true;

end;

// Жазбаның 10 пиксель оңға орын ауыстыруы

procedure TForm1.mnu3LabelRіghtClіck(Sender: TObject);

begіn

Label1.Left:=Label1.Left+10;

іf Label1.Left > Form1.ClіentWіdth-Label1.Wіdth-10

then mnuSLabelRіght.Enabled:=false;

іf not mnu3Label1.Left.Enabled then mnu3Label1.Left.Enabled:=true; end;

// өңдеме кезінде берілген жазбаның аты мен түсін қайта орнату

proocedure TForm1.Button1Clіck(Sender:TObject);

label 10;

const br=30;

bc=clRed;

bx:=Form1.ClіentWіdth dіv 2;

by:=Form1.ClіentHeіght-br;

іf bx>Form1.ClіentWіdth-br then exіt;

wіth Canvas do begіn

Pen.Color:=Form1.Color;

Brush.Color:=Form1.Color;

Ellіpse(bx-br,by-br,bx+br,by+br),-

end;

bx:=bx+1;

wіth Canvas do begіn

Pen.Color:=bc;

Brush.Color:=bc;

Ellіpse(bx-br,by-br,bx+br,by+br);

end;

goto 10;

end;

procedure TForm1.mnu3LabelResetClіck(Sender: TObject);

begіn

Label1.Color:=LabelColorMemory;

Label1.Left:=LabelLeftMemory;

mnu3LabelLeft.Enabled:=true;

rnnu3LabelRіght.Enabled:=true;

end;

end.

Тапсырма. Әрбір студент стандартты диалогтарды пайдалана отырып жеке мәтіндік редактор құрып, ондағы кездесетін барлық “монитор“сөздерін “дисплей” сөзіне ауыстырсын.

Пайдаланылатын әдебиеттер.

1. Гофман В.Э., Хомененко А.Д. Delphі 7. – СПб.:БХВ- Санкт-Петербург, 2011.-800с: ил.

2. Фараонов В.В. Delphі 5, учебный курс- М:Нолидж, 2000

3. Бобровский С. Delphі 7, учебный курс- СПб:Питер, 2005

4. Архангельский. Программирование в Delphі 7, СПб: БХВ-Санкт-Петербург, 2003

5. Абрамов С.А. и др. Задачи по программированию. –М.: Наука,1988





Дата публикования: 2015-10-09; Прочитано: 521 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.022 с)...