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

Тақырыбы: Менюды динамикалық түрде баптау



Жоспар: Менюді динамикалық түрде баптау.

Кілттік сөздер: MainMenu, PopupMenu, қасиеттер, оқиғалар, әдістер

Қосымша құрған кезде, меню құрылуы және күйге келтіруі құрастырушы менюдің көмегімен жүзеге асырылады. Бұл жерде қосымшаны динамикалық тұрғыда орындағанда, менюді құруға немесе асыруға болады. Мысалы, былай болуы мүмкін:

Ø Әртүрлі типтегі және жаңа менюді құруға болады.

Ø Жеке пункттерді қосуға және қоспауға болады.

Ø Меню пунктін көрінетін немесе көрінбейтін етуге.

Ø Меню пунктін қосу немесе өшіру.

Ø Пункт атын өзгерту.

Ø Пункт белгісін орнату немесе белгісі алып тастау.

Ø Басты меню меню формасын басқа формаға өзгерту.

Ø Екі менюді қосу

Бұл мүмкіншіліктер пункттің сұраныстар түсінігін, менюдің құрамын,нақты дәл әдістерін шақыру кезінде қамтамасызетіледі.

Менюдің пункттерін қосу әдістеріне Аdd және Insert жатса, оның меню пункттерінің өшірілуіне Delete әдісі жатады.

Аdd (Item: TMenuItem) процедурасы – соңындағы меню астындағы, параметрлерлі анықталатын Item элементін қосады. Егер меню асты болмаса, онда ол қайта жасалады.

Меню пунктінің қосылуының мысалы:

Procedure Form1.mnuItemAddClick(Sender:TSender);

Var NewItem: TmenuItem;

Begin

NewItem:=TmenuItem.Create(Self);

NewItem.Caption:=’Жаңа элемент;

mnuFile.Add(NewItem);

end;

Осы мысалда жаңа пункт, соңындағы Файл меню астына қосылады. Қосылатын пункттің жаңа элемент деген тақырыпшасы болады. Жаңа пункт алдын ала Create құрастырушысымен құрылады.

Insert (Index: Integer; Item:TMenuItem) процедурасы, алдынғы әдіске қарағанда жаңа пункт менюін анықталған жайына қосады. Index параметрі, массивтегі меню элементтерінің жаңа пункт қосылатын позициясын анықтайды. Егер Index параметрінің мағынасы шектелген диапозоннан шығып кететін болса, мысалы, меню астындағы элементтер саны модифицияланған меню пунктінен көп болса, онда шығарылып тастауы көрінеді. Мысалы сұраныс жіберілген позициядағы меню пунктінің қосылуы:

Procedure Form1.mnuItemInsertClick(Sender:TSender);

Var NewItem: TmenuItem;

Begin

NewItem:=TmenuItem.Create(Self);

NewItem.Caption:=’Екінші элемент’;

mnuFile. Insert (2,NewItem);

end;

Процедура жаңа меню пунктін меню астындағы Файл қосады. Жаңа пункттің Екінші элемент деген тақырыпшасы болады және екінші позицияға да қосылады(санау 0-ден басталады). Delete(Index: Integer) процедурасы көрсетілген меню пунктін өшіреді. Егер өшірілген меню пунктінде меню асты болса, онда меню асты да өшіріледі.

Меню пунктінің өшірілуінің мысалы:

Procedure Form1.mnuItemDeleteClick(Sender:TSender);

Begin

If mnuFile7Items [2].Caption=’ Екінші элемент’;

mnuFile. Delete(2);

end;

Процедура Файл пункт менюін өшіреді. Өшірілген пунктте Екінші элемент деген тақырыпша болады және екінші позицияда орналасады. Керекті атымен пункттінің өшірілуі алдын – ала тексеріледі.

Форма құрамына бірден көп басты меню кіреді. Бұл қолданылады, мысалы, егер оның біреуінің тақырыпшасыағылшынтілінде, алекіншісі орыс тілінде болса. Осындай мүмкіншілікті орындау кезінде формаға екі MainMenu компанентін енгізу керек және дәл келетін менюді дайындау керек. Осыдан кейін программаның орындау барысында формаға менюлердің әйтеуір біреуін қосуға болады.Басты менюдегіформаға қосылу үшін Menu формасының құрамы қолданылады.

Екі басты менюдің арасындағы қосылулар мысалы:

If Form1.Menu=EnglishMenu then Form1.Menu:=RussianMenu

Else Form1.Menu:=EnglishMenu;

Менюдің EnglishMenu және RussianMenu деген екі аты бар. Кодты, менюдің ауысып қосылуында, немесе оны дәлме-дәл өңдеу кезінде қосуға болады. Есіңізге салсақ, Menu форманың бір құрамы болып табылады, ол басты менюгенемесе белсенді менюге жол ашады.

Қосымшалардың құрамындағы бірнеше өзара қатынасты формалар мен менюдің әртүрлі формаларының арасында бірігу қажеттілігі туындайды. Бұл көбінесе басты – MainMenu менюі мен бағынғанформаға керек.Көп құжатты қосымшаларда басты меню мен таза форманың қосылуы, таза форманы іске қосқанкезде автоматты түрде орындалады. Ал бір документті қосымшаларда менюлердің қосылуы программалық жолмен жүргізіледі. Екі жолдық менюдің қосылуында Merge әдісі қолданылады. Merge (Menu: TMainMenu) процедурасы:сұранысты Menu параметрін, менюді, шақырылған әдісті менюге қосады.

Менюлердің қосылуы меню жолындағы пунктерінің деңгейінде орындалады. Мысалы, бірінші мен екінші меню FileHelp және File Edit View болса, онда нәтижелі меню: File Edit View Help жолында көрсетіледі.

Менюлердің қосылуын автоматты түрде – AutoMerge құрамында Boolean типін орната отырып, True бағынышты формасын құрғанда орындауға болады. Басты форма қосымшасында AutoMerge құрамы, False құрамында орнатылуы керек. Көп құжатты қосымшада қосылулар автоматты түрде орындалады, ол үшін AutoMerge менюінің барлық формаларының құрамы, False мағынасында болуы тиіс.

Меню пункттерінің қадағалануы GroupIndex құрамындағы Byte типіменжәне екі менюдің жекеленген бөліктерімен қосылу кезінде анықталады.Егер GroupIndex құрамының мағынасы екі менюге де тең болса, онда екінші пункттегі меню бірінші пункттегі менюді ауыстырады, сол үшін Merge әдісі шақырылады. Егер осы мағыналар тең болмаса, онда біріккен менюдің пункттерінің кіші мағыналы, үлкен мағыналы пункттің сол жағынан орын тебеді. GroupIndex құрамының тыныштығынан, барлық пункттерідің мағынасы нөлге тең болады.

Осындай екі менюдің қосылулары, көптерезелі қосымшаларды орындағанда қолданылады. Басты терезеден бағыныңқылы терезені шақырғанда, мысалы, MicrosoftWord текстік процессорындағы терезелік құжаттарында, меню пункттері басты менюге және қолданушыға қосымша мүмкіншіліктерді көрсеткенде қосылады. Бағыныңқылы терезені жапқаннан кейін басты менюдегі артық пункттеравтоматты түрде өшеді.

Қосылған менюді ажыратуға UnMerge әдісі қолданылады. UnMerge(Menu: TMainMenu) процедурасы Merge әдісімен құрылған екі менюді бөледі. Menu параметрі басты менюі мен бөлінетін менюді көрсетеді.

Дәріс №12 - 13





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



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