ҚҰрастырушылар: Мусатаева Г. Т., Конуспаева А. Т. Компьютерлік жүйелер интерфейстері: 5В070400 Есептеу техникасы және бағдарламалық қамтамасыз ету мамандығының студенттері үшін дәрістер жинағы. Алматы: аэжБУ, 2013



бет5/18
Дата19.01.2024
өлшемі193.65 Kb.
#489439
1   2   3   4   5   6   7   8   9   ...   18
стандартты және арнайы интерфейстер

Дәріс мақсаты: интерфейстің  қасиеттерін қарастыру. Интерфейсті құру ережелерімен танысу.
MAKE.EXE – бағдарламаны өңдеу үдерісі кезінде компиляция мен линковканы басқару үшін арналған утилиттер. MAKE жұмысы орындалатын және нысанілік файлдар арсындағы ақпараттық және уақыттық байланыстарға негізделген. Байланыстыру мен компиляцияны қайта жіберген кезде MAKE тек өңдеу кезінде (компиляциялайды, байланыстырады)  модификацияланатын файлдарды ғана жібереді, ол уақытты үнемдеуге көмектеседі. MAKE бағдарлама  үшін синтаксис:
MAKE [options...] [target[target]]
options
are MAKE options that control how MAKE works
target
is the name of the target listed in the makefile that you want to build
Келесі тізім графикамен жұмысты оңайлату үшін қолданылады.
1) Refreshing the screen (экранды қайта салу).
2) Types of graphic objects (нысан типтері).
3) Common properties and methods of canvases (жалпы қасиеттер және палитра әдістері).
4) Handling multiple drawing objects in an application (қосымшада қолмен салу).
5) Drawing on a bitmap (биттік аймақта сурет салу).
6) Loading and saving graphics files (графикалық файлдарды сақтау және жүктемелеу).
7) Using the clipboard with graphics (графика үшін  буфер қолдану).
8) Rubber banding example (мысал).
Компоненттерді және компонентер пакетін құру, оларды қолдану. Компоненттерді визуалды жобалау әдістемесі. Өз компоненттеріңізді өңдеу және қосу. Жаңа копоненттерді екі түрлі әдіспен құруға болады – қолмен және компонент мастерінің көмегімен (Component wizard). Өңдеудің негізгі қадамдары:
1) Create a unit for the new component (Жаңа компонент үшін модуль құру).
2) Derive your component from an existing component type (Мұрагер типін анықтау).
3) Add properties, methods, and events (әдістер, уақиғалар, қасиеттер қосу).
4) Register your component with the IDE (компонент тіркелуі).
5) Create a bitmap for the component (ярлык құру).
6) Create a package (a special dynamic-link library) so that you can install your component in the IDE.
7) Create a Help file for your component and its properties, methods, and events (көмек құру).
Жұмыс аяқталғанда келесі файлдарды көруге болады:
1) A package (.BPL) or package collection (.DPC) file (пакет немесе коллекция пакеті).
2) A compiled package (.DCP) file (компиляция файлы).
3) A compiled unit (.DCU) file (нысандық  файл).
4) A palette bitmap (.DCR) file (ярлык файлы).
5) A Help (.HLP) file (көмек файлы).
Open Tools API интерфейстері. Мастерлер құру. Tools API аспаптарының барлық функциялары – ToolsAPI бір модулінде берілген.
C++Builder және Delphi мастерлері, көп аспаптар үшін платформалары сәйкес болады, яғни  wizard in Delphi құрып, оны C++Builder қолдануға болады.
Мастер Tools API-мен берілген сервистерді қолданады. Әрбір сервис – функциялар тобынан тұратын интерфейсті құрайды.
Сервистер және басқа интерфейстер екі топқа бөлінген, ол префикстерде белгіленген - NTA және OTA. NTA (native tools API) бар IDE нысанілерге тікелей қатынауды қамтамасыздандырады, мысалы, TmainMenu сияқты. OTA (open tools API) пакеттеуді керек етпейді және IDE қатынау интерфейс арқылы орындалады.
Tools API екі түрлі интерфейсті туындайды, біріншісі программист дайындайды, ал екіншісін IDE дайындайды. Сіз жасап шығаратын мұрагер интерфейстер үш санатқа бөлінеді: мастер (wizards), сипаттаушы (notifiers), құрушы (конструкторлар, creators).
Сипаттаушы (notifier) – интерфейстің басқа түрі, оны IDE артқа қайтуды анықтау үшін қолданады. Құрушы (creator) интерфейстің басқа түрі, оны өзгерту керек. Жаңа модулдер құру үшін қолданылады.
Компонент құру мастері және компоненттері - Component wizard - құру үшін керек деректер:
1) мұрагер классты анықтау (The class from which the component is derived);
2) жаңа класқа жаңа ат беру (The class name for the new component);
3) палет компонентінің бетін анықтау, онда жаңа класс орналасады (The Component palette page where you want it to appear);
4) компонент орналасатын модуль атын анықтау  (The name of the unit in which the component is created);
5) модульге барар жолды көрсету – толық аты (The search path where the unit is found);
6) жаңа компонент орналасқан пакет атын анықтау (The name of the package in which you want to place the component).
TActionList компоненті бұл — орталықтандырылған сақтау, мұнда пайдаланушы жағынан әрекеттер олармен орындалатын  реакциялармен байланысады.
Әрекет (Action) деп операцияны атаймыз, оны пайдаланушы интерфейс элементтеріне әрекеттесіп жасайды. Әрекет орындалу керек компонент әрекет (Action target) мақсаты деп аталады. Әрекет инициализацияланған компонент (батырма, мәзір пункті) — әрекет клиенті (Action client) деп аталады.
Ескерту. Барлық әрекеттер бір компоненттер TActionList немесе TActionManager тізіміне біріккен кезде ғана жұмыс істей алады. Бұл компоненттердің сыртынан ешбір әрекет орындалмайды.
Бірінші жұмыс формаға  TActionList компонентін орнатудан басталады. Ол бірінші Standard бетіндегі  компоненттер палитрасында орналасқан. Бұдан кейін әрекеттер тізімінің редакторын маустың басқышын екі рет компонент немесе контекстік мәзірді басу арқылы жіберу керек.
Әрекеттерді қосу. Қоспастан бұрын әрекет дегеніміз не?
Әрекеттермен байланысты уақиғалар TAction компоненті үш уақиғаға көңіл бөледі: OnExecute, OnUpdate И OnHint.
Бірінші — және бұл негізгі — берілген әрекетке берілетін реакция. Бұл уақиға басқышты басу кезінде орындалады.  Мұнда — тәртіпке байланысты орындалады. Тәртіпке байланысты деп отырғанымыз, ол сигналды өңдеу сұлбасы бойынша орындалады, оның 4  - этапы бар:
1) Бірінші әрекеттер тізімінен OnExecute уақиға өңдегіші шақырылады:
TActionList:
property OnExecute: TActionEvent; TActionEvent = procedure (Action: TBasicAction; var Handled: Boolean)
of object;
Егер бұл уақиғаның өңдегіші сізбен қаралмаса, онда келесі уақиға генерациясы орындалады — қадам 2.
2) Глобальды Application нысанісінің  onActionExecute уақиғалар өңдегіші шақырылады (уақиға типі алдындағыдай — TActionEvent). Егер әрекет сигналын орындамаса онда келесі қадамға өтеміз.
3) Әрекеттің өзінен onExecute уақиға өңдегіші шақырылады (нысан типі TAction немесе мұраға алынады).
4) Егер бірінші үш қадам жағдайды өңдемесе (False болса), онда, мүмкін, бұл дұрыс қойылмаған мақсатқа байланысты болған шығар (Target). Соңғы амал ретінде қосымшаға CM_ACTIONEXECUTE хабарламасы жіберіледі. Бұл жағдайда бұл жағдай үшін басқа мақсат ізделеді.
onupdate уақиғаларды енгізу. onupdate уақиғаларды қолдануға мысал:
procedure TForml.PasteActionUpdate(Sender: TObject); begin
TAction(Sender).Checked := Clipboard.HasFormat(CFJTEXT);
end;
Ескерту onupdate уақиғаларды шақыру кезінде де төрт кезеңдік әрекеттер тізбегі орындалады, ол алдыңғы OnExecute –ге ұқсас.
Үшінші уақиға типі келесідегідей:
THintEvent = procedure (var HintStr: string; var CanShow: Boolean) of object;
Ол басқару элементінен берілген әрекетке байланысты жауаптар керек болған кезде шақырылады. Оқиғалар өңдегішінде бір нәрсе шығатын шықпайтындығын көрсетуге болады (CanShow параметрі) және егер шықса онда не шығатындығы (Hintstr параметрі).
Бұлар Taction компонентіне байланысты уақиғалар болған. Ал TActionList компонентінің өзінің үш уақиғасы бар: OnExecute, OnUpdate және OnChange. Бірінші екеуін біз қарастырдық; ал үшінші тізімді өзгерту кезінде орындалады (әрекеттерді қосу немесе жою).
Әрекеттер клиенттеріне таратылатын қасиеттер, егер бірнеше басқыштардың немесе мәзір пунктерінің бір ғана жалпы өңдегіші болса, онда олардың басқа қасиеттерінің де бірдей болуын талап еткен дұрыс. Delphi –де ол солай тартылған.
TActionManager компоненті (ары қарай тексте — әрекеттер менеджері). Ол басқа да көптеген қосымша мүмкіндіктер береді.
TActionManager редакторының бірінші бетінде (екілік маусты басу арқылы немесе контексті мәзірдегі Customize командасы арқылы шақырылады) барлық панельдер тізімі тұрады, олар берілген әрекеттер менеджерімен байланысқан. Сіз жаңа компонент қосып немесе бұрынғы компонентті  TActionToolBar басқышындағы New және Delete басу арқылы орындай аласыз.
Жүйенің стандартты интерфейсі. Интерфейсті өңдеу мысалы – MS Visual Systems, Borland Visual Systems, Oracle Visual Systems және т.б. Шешімі, артықшылықтары, кемшіліктері, мобильдігі, тереңдігі, түсі, өлшемі, анимациясы, масштабталуы, сенімділігі, қатынау жылдамдығы және т.б. Жүйенің стандартты интерфейсінің элементтері және олардың компоненттік таратылу.
Бір қосымшаның екі рет жіберілуінен қалай құтылуға болады?
Мұндай жағдай көп кездеседі. Мұндағы негізгі идея, ол қосылатын қосымша қосылар алдында ресурсты алып алу керек, ал қалғандары да оны орындағысы келеді, бірақ ол бос болмағандықтан, өз жұмыстарын аяқтайды да, оның басқа қосымшалары жасалмайды.
Мұндай ресурстың мысалы — жадығы бейнеленетін файлдағы жалпы блок. Бұл ресурстың аты болғандықтан, оны өз қосымшыңызға уникальды етіп жазуға болады:
var UniqueMapping : THandle;
FirstWindow : THandle
; begin
UniqueMapping := CreateFileMapping($ffffffff,
nil, PAGE_READONLY, 0, 32,'MyMap');
if UniqueMapping = 0 then
begin ShowMessage(SysErrorMessage(GetLastError)); Halt; end
else if GetLastError = ERROR_ALREADY_EXISTS then 
begin FirstWindow := FindWindowEx(0, 0, TfmMain.ClassName, nil);
if FirstWindowoO then SetForegroundWindow(FirstWindow}; Halt; end;
// Application.Initialize қосмышасының басқа көшірмесі жоқ;
Бұндай жолдарды жоба формасын құрудан бұрын текстің басын орныластыру керек.
Жадымен бірге қолданылатын блок жүйелік бет файлында беріледі (бұл жайында бірінші параметр айтып тұр, ол -1 тең, функция сипаттамасын қараңыз.
CreateFileMapping). Оның аты — муМар. Егер блокты құру кезінде қате коды алынса ERROR_ALREADY__EXISTS, онда ол қосымшаның жұмыс істеп тұрған көшірмесінің бар екендігін білдіреді.


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   ...   18




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет