Користење на интерфејси во делфи. Карактеристики на работа со интерфејси во Делфи. Стандардни елементи на интерфејсот

Статијата е напишана врз основа на резултатите од анализите на програмите напишани од млади развивачи на нашата група.

Правилно распоредете ја низата на префрлување на компонентите

Многу корисници, особено оние кои претходно работеле во DOS, имаат навика да се префрлаат помеѓу полињата за внесување не со глувчето, туку со користење на тастатурата со копчето Tab. Покрај тоа, тоа е многу побрзо од избирање на секое поле со глувчето. Затоа, редоследот на префрлување на компонентите мора да биде правилно поставен. Ова важи и за компонентите во сите компоненти на контејнерот (панели, групни кутии и слично), така и за самите компоненти на контејнерот, доколку има неколку од нив на формуларот.

Редоследот на префрлување на компонентите во контејнерот е поставен со својството TabOrder. Првата компонента што ќе стане активна е онаа со TabOrder еднаква на 0, втората со 1 и така натаму, додека сите компоненти не се повторат. Покрај тоа, компонентата има својство TabStop, што покажува дали компонентата ќе добие фокус при префрлување со копчето Tab. Ако треба да го оневозможите префрлувањето на која било компонента, поставете TabStop = false за тоа. Во овој случај, ќе биде можно да се префрлите на оваа компонента само со помош на глувчето.

Има моменти кога корисниците кои се навикнати да префрлаат одреден клуч во една програма, од навика, продолжуваат да го користат во други. Ова често се случува кај корисниците на 1C, каде што копчето Enter може да се користи за навигација низ полињата за внесување. Па, да им ја дадеме таа можност во нашите програми ако тоа го побараат. Поставете го својството KeyPreview на формуларот на true и напишете го управувачот со настани OnKeyPress:

Постапка TForm1.FormKeyPress(Испраќач: TObject; var Клуч: Char);
започне
ако ord(клуч)=vk_Return тогаш
Form1.SelectNext(PriemForm.ActiveControl, точно, точно);
крај;

Таквиот управувач обезбедува премин низ елементите на формата кога ќе се притисне копчето Enter. Треба да се напомене дека овој метод нема да работи со копчиња, бидејќи притискање на Enter на копче предизвикува притискање, додека притискање на Tab го префрла влезниот фокус на следната компонента во низата на префрлување.

Стандардни копчиња

Сите исти корисници брзо се навикнуваат на фактот дека во полето за дијалог на апликациите, по правило, можете да го потврдите вашиот избор со копчето Enter и да откажете со копчето Esc. Да не ги разочараме во нашите програми, особено затоа што тоа е многу лесно да се направи. За копчето Enter, поставете го својството Default на true. За копче кое одговара на Esc, поставете го својството Cancel на true. И тоа е тоа.

Да или не

Сите дијалог-кутија кои бараат кориснички дејства мора да имаат најмалку две копчиња: потврда за дејство и одбивање на дејство (Да/Не, Зачувај/Откажи итн.). Дејството може да се откаже со затворање на прозорецот со копчето [X] во насловот на прозорецот. Невалидно е ако има само едно копче за потврдување на дејството, а за одбивање треба да се затвори прозорецот со копчето [X] во насловот или воопшто да нема можност за одбивање. Ова го збунува корисникот, предизвикувајќи логично прашање: како да се одбие?

Исто така, не заборавајте за она што беше кажано погоре во ставот „Стандардни копчиња“.

Сите дијалог-кутија треба да се отворат во центарот на екранот

Центрирани наместо местото каде што се создадени во режим на дизајнирање. Прво, тој е повеќе визуелен, и второ, автоматски го елиминира проблемот со различни резолуции на екранот за различни корисници.

Исклучок е направен ако полето за дијалог не е модално, и како резултат на работата на корисникот во овој прозорец, промените веднаш се случуваат во главниот прозорец (на пример, филтрирање на множество податоци, прецртување графикони итн.).

Големините на прозорците не треба да ги надминуваат големините на екранот.

Во никој случај. Срамота е кога дел од прозорецот лази надвор од екранот. Ова барање не зависи од резолуцијата на екранот на корисникот, т.е. изговорите од типот „Нека стават поголема резолуција“ не функционираат.

Правилна промена на големината на елементите на прозорецот

Елементите на прозорецот мора правилно да ја менуваат големината или да се движат кога се менува големината на прозорецот, кога прозорецот е максимизиран и кога прозорецот е обновен откако ќе се максимизира.

Сè е секогаш видливо

Намалувањето на големината на прозорецот не треба да доведе до исчезнување на елементите на прозорецот и по можност не треба да доведе до појава на лизгачки ленти (скролери) на самиот прозорец. Можете да ја ограничите минималната големина на прозорецот така што сите елементи се видливи и достапни. Ако не е можно да ги поставите компонентите така што сите да бидат видливи во прозорецот, можете да користите јазичиња (од типот PageControl) за да ги поделите компонентите во групи. Не се пропуштаат и изговорите за резолуцијата на екранот.

Совети насекаде, навестувања секогаш

За копчињата, особено на лентите со алатки (како што е лентата со алатки), треба да се дадат совети за секогаш да биде јасно зошто е потребно ова или она копче.

Спектарот на бои

Не е неопходно да се насликаат компонентите на формата во сите бои на виножитото. Ова ги заморува очите и го расфрла вниманието на корисникот. Не изгледа „кул“. Истакнувањето се користи кога е неопходно да се привлече вниманието на корисникот на одреден елемент или одреден дел од прозорецот. На пример, можете да ги обоите записите со грешки во светло-црвена боја или, напротив, светло зелена боја на записите, чија верификација беше успешна.

Заклучок

Постои многу добар метод кој ви овозможува да ги најдете недостатоците на програмата воопшто и интерфејсот особено. Едноставно е: замислете се себеси на местото на корисникот и половина час обидете се да работите како што тој работи. Уште подобро е ако вашиот корисник е на дофат (на пр. работи во истата организација). Во овој случај, седнете до него, поточно наместо него и обидете се да ја завршите неговата работа. Внесете податоци, менувајте ги, прикажувајте извештаи итн. Ако не знаете како да го направите тоа правилно, прашајте го вашиот корисник. Не правете една или две операции од ист тип, како во режимот за отстранување грешки, туку 20-30 или уште повеќе различни операции, по различен редослед. Заборавете да внесете нешто или внесете го погрешно и видете како програмата реагира на тоа. Брзо ќе ги видите слабите точки на вашата програма.

Авторот на написот ја автоматизирал работата на приемната комисија на универзитетот, а во првата година од имплементацијата на програмата, поминувал 3-4 часа дневно во приемната комисија, регистрирајќи ги кандидатите, пополнувајќи ги нивните лични податоци и давајќи им извештаи за испити. И во останатото работно времепоправени грешки и пропусти. Верувај ми, следната година практично нема проблеми. Така беше и со воведувањето на персоналниот модул.

Така, имајте го на ум корисничкото искуство. Нека им биде лесно и пријатно да работат со вашите програми.

Еден и најмногу јаки странисредини Делфи програмирањее неговата отворена архитектура, благодарение на која Delphi дозволува еден вид метапрограмирање, овозможувајќи ви да ја „програмирате програмската средина“. Овој пристап го преведува Делфи во квалитативно ново нивосистеми за развој на апликации и ви овозможува да вградите дополнителни алатки во овој производ кои ги поддржуваат речиси сите фази на креирање применети системи. Таков широк опсег на можности се отвора благодарение на концептот на таканаречените отворени интерфејси имплементирани во Delphi, кои се врската помеѓу IDE (Интегрирана развојна средина) и надворешните алатки.

Оваа статија се фокусира на отворените интерфејси на Delphi и дава преглед на карактеристиките што ги обезбедуваат. Делфи дефинира шест јавни интерфејси: интерфејс со алатки, дизајнерски интерфејс, експертски интерфејс, интерфејс со датотеки, интерфејс за уредување и интерфејс за контрола на верзијата. Малку е веројатно дека во рамките на овој напис ќе можеме детално да ги покриеме и илустрираме можностите на секоја од нив. Изворните текстови на Делфи ќе ви помогнат потемелно да ги разберете прашањата што се разгледуваат, бидејќи програмерите им дадоа детални коментари. Декларации за класи што претставуваат јавни интерфејси се содржани во соодветните модули во директориумот ...\Delphi\Source\ToolsAPI. Дизајнерскиот интерфејс (модул DsgnIntf.pas) обезбедува средства за креирање уредувачи на својства и уредници на компоненти.

Уредувачите на својства и компоненти се тема достојна за посебна дискусија, затоа само потсетуваме дека уредникот на својства го контролира однесувањето на инспекторот на објекти кога се обидува да ја промени вредноста на соодветното својство, а уредникот на компоненти се активира кога двоен кликлевото копче на глувчето на сликата на компонентата поставена на формуларот. Интерфејсот за контрола на верзијата (модул VCSIntf.pas) е дизајниран да креира системи за контрола на верзии. Почнувајќи од верзијата 2.0, Delphi го поддржува интегрираниот систем за контрола на верзии Intersolv PVCS, така што во повеќето случаи не е неопходно да се развие сопствен систем. Поради оваа причина, ние исто така ќе го испуштиме разгледувањето на интерфејсот за контрола на верзијата. Интерфејсот со датотеки (модул FileIntf.pas) ви овозможува да го редефинирате работниот датотечен систем на IDE, што овозможува да изберете свој начин за складирање на датотеки (на пример, во полињата Мемо на серверот на базата на податоци). Интерфејсот за уредување (модул EditIntf.pas) обезбедува пристап до баферот на изворниот текст, кој ви овозможува да анализирате и генерирате код, да ја одредувате и менувате позицијата на курсорот во прозорецот на уредувачот на кодови и да го контролирате истакнувањето на синтаксата на изворниот текст.

Специјалните класи обезбедуваат интерфејси за компонентите поставени на формуларот (дефинирање на типот на компонентата, добивање референци за родителски и детски компоненти, пристап до својства, пренесување фокус, бришење итн.), за самата форма и за ресурсната датотека на проектот. Интерфејсот за уредување, исто така, ви овозможува да ги идентификувате таканаречените известувачи за модули кои го одредуваат одговорот на настани како што се менување на изворниот код на модулот, менување на формата, преименување на компонентата, зачувување, преименување или бришење на модулот, менување на ресурсот на проектот датотека, итн. Интерфејсот со алатки (модул ToolIntf. pas) им овозможува на програмерите средства да добијат генерални информацииза состојбата на IDE и извршувајте дејства како што се отворање, зачувување и затворање проекти и поединечни датотеки, создавање модул, добивање информации за тековниот проект (бројот на модули и форми, нивните имиња итн.), регистрирање датотечен систем, организација на интерфејси на поединечни модули итн. Покрај известувачите за модули, интерфејсот со алатки дефинира додатни известувачи кои известуваат за настани како што се отворање/затворање датотеки и проекти, вчитување и зачувување на датотека на работната површина на проектот, додавање/исклучување на проектни модули, инсталирање/деинсталирање пакети, компајлирање проект, и во За разлика од модуларните известувачи, известувачите за додатоци ви дозволуваат да го откажете извршувањето на некои настани.

Покрај тоа, интерфејсот со алатки обезбедува начин за пристап до главното мени на Delphi IDE, овозможувајќи ви да вметнете дополнителни ставки во него. Експертскиот интерфејс (модул ExptIntf.pas) е основа за креирање експерти - софтверски модули кои се вградени во IDE со цел да се прошири неговата функционалност. Пример за експерт е Волшебникот за формулари за база на податоци Делфи, кој генерира формулар за прегледување и менување на содржината на табела со база на податоци. Откако ја дефиниравме класата на експерти, треба да се увериме дека Delphi „учи“ за нашиот експерт. За да го направите ова, тој мора да се регистрира со повикување на процедурата RegisterLibraryExpert, префрлајќи ѝ пример од експертската класа како параметар. Како илустрација, ајде да создадеме едноставен експерт во стилот esStandard, кој, кога е избрана соодветната ставка од менито Delphi, прикажува порака дека работи. Како што можете да видите од горната табела, стилот на еСтандард бара да се отфрлат шест методи:

За да може експертот да се „активира“, мора да ја изберете ставката од менито Компонента/Инсталирај компонента... , да го изберете модулот што го содржи експертот (во нашиот случај exmpl_01.pas) во дијалогот „Преглед“, кликнете OK и по компајлирањето пакетот dclusr30.dpk во главното мени Delphi во делот Помош, треба да се појави ставката Simple Expert 1, кога е избрана, се појавува информативната порака „Стандардниот експерт започна!“. Зошто Delphi ја става експертската ставка од менито во делот Помош останува мистерија. Ако не ви се допаѓа тоа што ставката од менито се појавува каде било во Делфи, а не каде сакате, можна е следнава опција: креирајте експерт во стилот на додатокот, кој го елиминира автоматското креирање на ставката од менито и додајте ја ставката од менито „рачно“ користејќи го интерфејсот со алатки. Ова ќе ви овозможи да ја поставите локацијата на новата ставка во главното мени на произволен начин.

За додавање ставка од менито, се користи класата TIToolServices - основата на интерфејсот на алатките - и класите TIMainMenuIntf, TImenuItemIntf кои имплементираат интерфејси во главното мени IDE и неговите ставки. Инстанцата ToolServices од класата TIToolServices е креирана од самиот IDE кога ќе се иницијализира. Забележете дека е одговорност на развивачот да ги ослободи интерфејсите во главното мени на Delphi и неговите ставки. На патот, ајде малку да го комплицираме функционалното оптоварување на експертскиот советник: кога ќе се активира неговата ставка од менито, тој ќе издаде сертификат за името на проектот отворен во овој моментво околината: Во овој пример, централното место го зазема функцијата AddIDEMenuItem, која додава ставка од менито во главното мени на Delphi IDE. Како параметри, тој го прима текстот на новата ставка од менито, неговиот идентификатор, идентификаторот на ставката пред која е вметната новата ставка, симболичната претстава на клучот, кој заедно со копчето Ctrl може да се користи за брз пристапдо новата ставка и управувач со настани што одговара на изборот на новата ставка. Додадовме нова ставка од менито во делот Поглед пред ставката Часовници.

Сега да се запознаеме со известувачите. Ајде да дефинираме дополнителен известувач кој следи кога проектите се затворени/отворени и соодветно го прилагодува полето што го складира името на активниот проект (за краткост ја испуштаме имплементацијата на методи кои не се променети во споредба со претходниот пример): За да се имплементира нотификаторот, ја дефиниравме класата TAddInNotifier, која е потомок на TIAddInNotifier и го отфрла FileNotification. IDE ќе го повикува овој метод секогаш кога ќе се појави настан на кој известувачот за додаток може да одговори (секој таков настан се означува со соодветната константа од типот TFileNotification). Полето Expert во класата TAddInNotifier се користи за повратни информациисо експерт (метод TAddInNotifier.FileNotification). Во деструкторот на вештакот регистрацијата на нотификаторот е нерегистрирана и нотификаторот се уништува. Сега да ја илустрираме употребата на модуларни известувачи. Ајде да создадеме експерт за додаток кој издава пораки за секој чин на зачувување на проектна датотека (за кратко, не е дадена имплементацијата на методите што веќе ги знаеме): Во овој пример, експертот за додаток ги следи настаните што одговараат на отворањето /затворање на проекти.

Секогаш кога се отвора проект, се регистрира известувач за модул што одговара на проектната датотека. Во однос на имплементацијата, модуларните известувачи се слични на известувачите за додатоци: ние дефинираме класа TModuleNotifier што е потомок на TIModuleNotifier и ги отфрламе неговите методи Notify и ComponentRenamed. IDE го повикува методот Notify кога се случуваат одредени настани поврзани со овој модул; во овој метод се одредува реакцијата на одреден настан. Методот ComponentRenamed се повикува кога се менува името на компонентата што се наоѓа на формуларот на модулот. Ве молиме имајте предвид дека ние не го користиме овој метод, но мораме да го отфрлиме, инаку, кога ќе се промени името на компонентата, ќе се повика апстрактниот метод на основната класа, што доведува до непредвидливи последици.

Регистрирањето известувач за модул е ​​нешто покомплицирано од регистрирањето додаток за известувач: прво го добиваме интерфејсот на модулот (TIModuleInterface), а потоа го регистрираме известувачот користејќи го интерфејсот на модулот. Кога проектот е затворен, известувачот на модулот е нерегистриран (повторно користејќи TIModuleInterface) и известувачот е уништен. Како заклучок, ќе покажеме како можете да ја одредите позицијата на курсорот во прозорецот на уредувачот на кодови. Ајде да создадеме експертски советник кој, кога ќе се избере соодветната ставка од менито, ќе прикаже порака што го содржи името на активната датотека и позицијата на курсорот во неа (дадена е имплементација само на методите кои се суштински за овој пример): За да ја одредиме позицијата на курсорот, мора да ја добиеме следната низа на интерфејси: интерфејс на модулот (TIModuleInterface); интерфејс за уредувач на код (TIEditorInterface); интерфејс за преглед на модул во прозорецот на уредувачот (TIEditView).

Ако активната датотека со изворниот текст (*.pas) е активна кога се избира експертската ставка од менито, тогаш се прикажува порака која го содржи името на активната датотека и моменталната позиција на курсорот во неа. Ако активната датотека не е датотека pas, не се издава порака. Методот GetCurrentFile од класата TIToolServices се користи за да се добие името на активната датотека. Ова ја завршува нашата дискусија за начините на користење јавни интерфејси. ЦД-РОМ-от го содржи изворниот код за сите дадени примери. ЦД-РОМ-от исто така содржи покомплексен и проширен пример кој содржи експерт за додаток кој му овозможува на корисникот да го обележи изворниот код на модулите на Делфи. Брз водич за инсталирање и користење на Експертот за обележувачи е содржан во датотеката bkmrks97.htm. Значи, во овој напис, јавните интерфејси се дискутирани во општи термини и се дадени примери за нивна употреба. Уште еднаш, благодарение на достапноста на изворните кодови на отворени интерфејси, можете лесно да ги разберете деталите што ве интересираат. Се надеваме дека разновидните можности што ги даваат отворените интерфејси ќе ви дадат повеќе од една смела и корисна идеја.

само за резултати

строго почитување на роковите

Транспарентност

спроведување на проектот

техничка поддршка како подарок

Програмирање, подобрувања, консултации за 1C

Како работиме

1. Разговараме за проблемот по телефон. Ако имате далечински пристап - прикажете го на екранот на вашиот компјутер.

2. Ние ја оценуваме работата во рубли ако проектот е голем, ако не - приближниот број на часови.

3. Ја завршуваме работата.

4. Прифаќате работа во вашата програма, доколку има недостатоци ги коригираме.

5. Издаваме фактура, вие плаќате.

Трошоци за работа

1. Сите дела се поделени во 3 категории: консултации, ажурирање на типична конфигурација, развивање или програмирање на нов извештај, обработка, копчиња итн.

3. За работа над 10 часа, однапред составена техничка задачасо опис и цена на работа. Работата започнува по одобрувањето на TOR со вас.

Техничка поддршка

1. Доколку најдете грешки во претходно прифатените дела, во рок од 3 месеци, ги коригираме бесплатно.

2. За редовните клиенти ги поправаме сите недостатоци во нашата работа бесплатно во рок од една година.

Програми за управување со вашиот бизнис.

Купете 1C: Enterprise

Ние сме официјален дилер 1C фирми, можете да купите од нас различни софтверски производии лиценци. Покрај купувањето „кутија“, ќе ви помогнеме да ја поставите програмата, да се консултирате и да направите основни поставки.

  • Сметководство
  • Автоматизација на продавницата
  • Трговија на големо
  • Помош при инсталација и првично поставувањевклучено во пакетот!
  • Фино прилагодување на конфигурациите според потребите на купувачот, развој на нови модули во отсуство на потребните функции во стандардната конфигурација.
1в сметководство 1C: Трговско управување 1C: Малопродажба 1C: Платен список и управување со човечки ресурси
Од 3300 рубли. Од 6700 рубли. Од 3300 рубли. Од 7400 рубли.

Обезбедување на сервер.

Сервер за инстант поставување + 1C.

Нема сервер? Не е важно, ние ќе избереме и брзо ќе поставиме сервер во „облакот“. За мала надокнада, добивате многу сигурно решение.

  • Достапност 24\7
  • Нема потреба да го чувате своето системски администратор(заштедата ќе ги покрие трошоците за вашиот сервер).
  • Брзо поставување и инсталирање на 1C на серверот, за 3 дена веќе ќе имате целосно работен систем.
  • Во секое време можете да се преселите во локален сервердоколку решението не е задоволително.

СМС од вашиот 1C

Дали сакате клиентите навреме да научат за промоциите и попустите? Клиентите не се враќаат? Поставете испраќање СМС директно од 1C!

Нашата компанија ќе може брзо да постави испраќање СМС на вашите клиенти директно од 1C. Примери на настани што може да се автоматизираат:

  • Благодарност за купувањето и акумулацијата на бонуси веднаш по следното купување.
  • Пресметка на бонуси на картичката како подарок за роденден/друг важен или празничен ден.
  • Известување за складиште.
  • Истекување на ваучер за подарок.
  • Известување за прием на претплата и резервација на стоки.
  • Адреса со насоки до продавница/канцеларија, телефонски броеви.
  • итн.

Поставувањето во 1C може да го направат нашите специјалисти или нашите вработени. Можете да се запознаете со тарифите на страната СМС-тарифи.

  • Гаранција за испорака на СМС, парите се повлекуваат само за доставена СМС.
  • Посебна наплата за секоја СМС.
  • Надополнување на билансот на различни начини.
  • Погледнете ја историјата на сите испратени СМС пораки во секое време.
  • Името на испраќачот наместо нумеричкиот број на телефонот на примачот.

Објектно-ориентираното програмирање (OOP), покрај концептот на класа, го обезбедува и основниот концепт на интерфејс.

Што е интерфејс и кои се карактеристиките за работа со него во програмскиот јазик Делфи?

Интерфејсот е семантичка и синтаксичка конструкција во програмскиот код што се користи за специфицирање на услугите обезбедени од класа или компонента (Википедија).

Всушност, интерфејсот дефинира листа на својства и методи кои треба да се користат при работа со класа која го имплементира овој интерфејс, како и нивниот потпис (име, тип на податоци, прифатени параметри (за процедури и функции) итн.). Така, класата што имплементира интерфејс мора нужно да ги имплементира сите негови компоненти. Покрај тоа, во строга согласност со начинот на кој тие се опишани во него.

Многу често, интерфејсите се споредуваат со апстрактни класи, но и покрај сите сличности, оваа споредба не е сосема точна. Во апстрактните часови, на минимум, достапна е контрола врз видливоста на членовите. Во исто време, опсегот не се дефинира за интерфејси.

Интерфејсите ви овозможуваат да ја направите архитектурата пофлексибилна, бидејќи тие го обединуваат пристапот до една или друга функционалност, а исто така ви овозможуваат да избегнете голем број проблеми поврзани со наследувањето на класите (интерфејсите исто така може да се наследат еден од друг).

Делфи го користи клучниот збор за интерфејс за да декларира интерфејс. Ова е истиот клучен збор што го дефинира делот од модулот до кој може да се пристапи однадвор (помеѓу интерфејсот и клучните зборови за имплементација). Меѓутоа, при декларирање на интерфејс, се користи различна синтакса, слична на декларирање класи.

Делфи/Паскал

IMyNewInterface = процедура за интерфејс InterfaceProc; крај;

IMyNewInterface =интерфејс

процедура InterfaceProc ;

крај ;

Така, самата синтакса за декларација на интерфејсот нема фундаментални разлики од другите програмски јазици (синтаксните карактеристики засновани на Паскал не се бројат). Во исто време, имплементацијата на интерфејси има голем број на карактеристични карактеристики.

Факт е дека интерфејсите на Delphi првично беа воведени за поддршка на COM технологијата. Затоа, интерфејсот IInterface, кој во Delphi е предок на сите други интерфејси (еден вид аналог на TObject), веќе содржи три основни методи за работа со оваа технологија: QueryInterface, _AddRef, _Release. Како резултат на тоа, ако класата имплементира каков било интерфејс, тогаш мора да ги имплементира и тие методи. Дури и ако оваа класа не е дизајнирана да работи со COM.

Поради оваа карактеристика на интерфејсот IInterface, во Delphi употребата на интерфејси, во повеќето случаи, доведува до додавање на очигледно неискористени функции во класата.

Постои класа на библиотека TInterfaceObject, која веќе ја содржи имплементацијата на овие методи и, кога се наследува од неа, нема потреба сами да ги имплементирате. Но, бидејќи Delphi не поддржува наследување на повеќе класи, неговата употреба често предизвикува само дополнителна сложеност во дизајнот и имплементацијата на веќе потребната функционалност.

Сето ова доведе до фактот дека, и покрај сите можности што ги даваат интерфејсите, нивните практична употребаво Делфи скоро и да не отиде подалеку од работата со COM.

Со оглед на тоа што се оптимизирани за работа главно со оваа технологија, интерфејсите, поточно функционалноста и архитектонските ограничувања што ги додаваат без грешка, не се оправдуваат себеси кога решаваат други проблеми.

Затоа, многу програмери на Делфи, всушност, сè уште се лишени од моќна и флексибилна алатка за развој на архитектура на апликации.

Создавање интерфејскорисникот се сведува на избор од палетата на компоненти неопходни за работа на програмата Делфи компоненти, вработени интерфејсуправување, како и интерфејсприкажување информации и нивно пренесување во Формуларот со последователен распоред.

Корисничкиот интерфејс што го креирате треба да користи стандардни, кориснички познати елементи и да обезбеди максимална погодност. Сето ова на крајот е определено со таков критериум како ефективноста на интерфејсот - максимален резултат со минимален напор.
Познати се принципите на креирање кориснички интерфејс. Како најопшти принципи за создавање кориснички интерфејсиможе да се земат предвид три главни точки:

  1. Програмата треба да помогне да се постигне задачата, а не да стане задача.
  2. Кога работите со програмата, корисникот не треба да се чувствува како будала.
  3. Програмата треба да работи на таков начин што корисникот не го смета компјутерот за будала.
Првиот принцип- ова е таканаречената „транспарентност“ на интерфејсот. Корисничкиот интерфејс треба да биде интуитивен, лесен за учење и да не му создава проблеми на корисникот кои ќе мора да ги надмине во процесот. Користете стандардни, неукрасени компоненти, користете ги вообичаените контроли што ги користат слични програми и ќе ги постигнете критериумите за изведба првиот принцип.

Втор принциплежи во занемарувањето на интелектуалните способности на корисниците. Од мое искуство, знам дека често корисниците не само што не знаат како да работат на компјутер, туку едноставно се плашат да направат нешто сами. Затоа, корисничкиот интерфејс треба да биде што е можно попријателски.
Покрај тоа, стравовите на корисниците често се оправдани, бидејќи цената на програмата и самиот компјутер не може да се споредат со трошоците, на пример, за базата на податоци создадена со долгогодишен напор. Затоа програмерот, при креирањето на кориснички интерфејс, мора секогаш да вградува во програмата „заштита од будала“ - од погрешни постапки и корисничко внесување на неточни податоци. Но, некои програмери премногу се занесуваат со таквата заштита, ја прават премногу наметлива и како резултат на тоа, работата на програмата наликува на познатото „чекор лево, чекор десно се смета за бегство“! А она што програмерот го создава како решение за проблем, самиот почнува да создава проблеми.
Да се ​​усогласат вториот принципнема потреба да се дозволи програмата да ги „коригира“ постапките на корисникот и да укаже што точно да дејствува за него, доведувајќи го во тесна рамка. Исто така, не треба премногу да се занесувате со прикажување на информативни пораки, особено дијалози, бидејќи тоа го одвлекува вниманието на корисникот од работа. И подобро е да се обезбеди можноста за целосно оневозможување на потсетниците.

Трет принципе да се создаде програма со најголеми можни „ментални“ способности. И покрај брзиот развој на компјутерската технологија, дури и широко распространетите програми може само многу условно да се наречат дека имаат вештачка интелигенција. Тие се мешаат во работата на корисникот со прикажување на дијалози со глупави прашања кои предизвикуваат збунетост дури и во наједноставните ситуации. Како резултат на тоа, корисниците во нивните срца извикуваат: "Па, овој автомобил е глупав!"
Мене лично ме нервираат постојаните прашања на речиси сите. уредувачи на текстза тоа дали да се зачува променетиот текст, иако оригиналниот и тековниот текст не се разликуваат по ниту еден знак. Да, напишав нешто, но потоа вратив сè назад, дали е навистина невозможно да се сфати! Морам да проверам дали сум збркал нешто.

Обидете се да се придржувате до следниве правила:

Стандардни елементи на интерфејсот
Користете стандардни компоненти за овој елемент на интерфејсот. Откако ќе ја запознае вашата програма, корисникот нема да губи време за да се запознае, туку веднаш ќе почне да работи - ова е еден од знаците на професионално направена програма.
Мала палета на алатки
Обидете се да не користите премногу различни компоненти. И, се разбира, користејќи една стандардна компонента некаде на едно место, во сличен случај исто така користете ја.
Еднакво растојание помеѓу контролите
Наредете ги елементите на интерфејсот на исто растојание едни од други. Случајно расфрланите компоненти создаваат чувство на непрофесионален производ. И обратно, внимателно калибрираното поставување на Формата на копчиња, прекинувачи, полиња за избор и други компоненти што го сочинуваат интерфејсот е знак за квалитетна работа.
редослед на јазичиња. "Точен редослед
TabOrderе редоследот по кој курсорот на екранот се движи над контролите кога ќе се притисне копче Таб. Во правилно напишана програма, курсорот се движи, следејќи ја логиката на работата на корисникот со програмата. Кога креирате програма, програмерот често менува компоненти, отстранува некои и додава други по потреба. Како резултат на тоа, во завршената програма, курсорот случајно го прескокнува Формуларот. По завршувањето на програмата, не заборавајте да поставите TabOrder.
Избор на фонт
Само оставете ги фонтовите на мира. Стандардните фонтови на Delphi ќе работат за секој систем на кој може да работи вашата програма. Користете задебелен фонт само за да нагласите важни елементи. Апликација курзивниа особено подвлекување, што корисникот може да го погреши за хиперврска - лоша форма.
Избор на бои
Што се однесува до боите на елементите на интерфејсот, исто како и во случајот со фонтовите, подобро е стандардно да ги оставите стандардни. Delphi ја користи системската палета на Windows, а со нејзино менување, корисникот може лесно да ги приспособи боите за себе.
Алтернативно управување
Професионално направена програма треба да може да се контролира не само со глувчето, туку и со тастатурата. Не треба да има достапни функции за извршување само со глувчето (внесување внатре графички уредницине се брои!). За најкористените функции треба да се обезбедат „жешки копчиња“ за нивен брз пристап.
Градежни блокови за интерфејс
Во однос на специфичните елементи на корисничкиот интерфејс, квалитетот на корисничката интеракција со програмата зависи од:
  • усогласеност на контролниот елемент со неговата задача;
  • правилата според кои функционира контролата.
    Оваа страница ги разгледува правилата за создавање на некои елементи на интерфејсот.
И сега сакам да покажам какви алатки нуди Delphi за управување со компоненти на Формуларот, нивната релативна позиција и однесувањето на курсорот кога ќе се притисне копче. Таб.

Со цел да се подредат компонентите релативно едни на други во правилен редослед, прво треба да ги истакнеме. Можете едноставно да го повлечете глувчето над областа на формуларот што ги содржи избраните компоненти. Или со држење Смена", наведете со истиот глушец секоја компонента што треба да се избере. Повторено кликнување со глувчето на избраната компонента (притискајќи " Смена") го отселектира.

Избраните компоненти може да се управуваат како единствена целина - преместени низ Формуларот, доделени вредности на истите својства, копирани (за инсталација, на пример, на друг формулар), дури и избришани.

Сега кликнете со десното копче на една од компонентите и од менито што се појавува изберете Позиција -> Порамни...Ќе се појави дијалог-кутија што ќе ви овозможи да ја прилагодите положбата на компонентите во групата хоризонтално и вертикално. На пример, треба да ги усогласиме нашите четири копчиња налево и да се погрижиме да имаат исто вертикално растојание меѓу нив. За да го направите ова, изберете ги копчињата за радио Хоризонтално: леви странии Вертикално: Поставете простор подеднакво.

Избор на ставка Центар, ќе ги подредиме компонентите така што нивните центри ќе бидат лоцирани на иста линија хоризонтално или вертикално, а точката Центар во прозорецотги поместува компонентите во центарот на прозорецот, хоризонтално или вертикално.

Во истото мени, линијата Таб Осо цел...предизвикува појава на дијалог прозорец кој го контролира движењето на курсорот низ елементите на интерфејсот кога ќе се притисне копче Таб. Кога Формуларот ќе се појави на екранот, курсорот природно ќе биде на компонентата што се наоѓа на првата линија од полето за дијалог. И тогаш ќе се движи надолу на листата. На полето за дијалог, две сини стрелки „горе“ и „долу“ ја контролираат позицијата на избраната компонента. Изберете ја саканата компонента, користете ги стрелките за да се преселите до саканата линија во списокот и така натаму.

При изборот на ставка од менито Контрола ->Се појавува подмени со две ставки:

  • Донесете на предната страна
  • испрати назад
Ова се методи на компоненти кои се достапни и програмски. Копче1.SendToBackго поместува копчето во „позадина“ и Копче1.BringToFront- донесе на Фронт“. Односно, ако една компонента е поставена над друга, овие методи ги заменуваат. Случаите во кои ова може да се примени се прилично очигледни.


Врв