Uporaba vmesnikov v delphi. Značilnosti dela z vmesniki v Delphiju. Standardni elementi vmesnika

Članek je nastal na podlagi rezultatov analiz programov, ki so jih napisali mladi razvijalci naše skupine.

Pravilno uredimo zaporedje preklopnih komponent

Mnogi uporabniki, zlasti tisti, ki so prej delali v DOS-u, imajo navado preklapljati med vnosnimi polji ne z miško, temveč s tipkovnico s tipko Tab. Poleg tega je veliko hitrejši kot izbiranje posameznega polja z miško. Zato mora biti vrstni red preklopa komponent pravilno nastavljen. To velja tako za komponente znotraj vseh komponent vsebnika (paneli, GroupBoxes in podobno), kot tudi za same komponente vsebnika, če jih je na obrazcu več.

Vrstni red preklapljanja komponent znotraj vsebnika določa lastnost TabOrder. Prva komponenta, ki postane aktivna, je tista z TabOrder enakim 0, druga z 1 itd., dokler niso vse komponente oštevilčene. Poleg tega ima komponenta lastnost TabStop, ki kaže, ali bo komponenta prejela fokus, ko jo preklopite s tipko Tab. Če morate prepovedati preklop na katero koli komponento, nastavite njen TabStop = false. V tem primeru lahko na to komponento preklopite samo z miško.

Obstajajo primeri, ko uporabniki, ki so navajeni preklapljati z določeno tipko v enem programu, ga iz navade še naprej uporabljajo v drugih. To se pogosto zgodi pri uporabnikih 1C, kjer se lahko s tipko Enter pomikate po vnosnih poljih. No, takšno možnost jim bomo dali v naših programih, če bodo zanjo zahtevali. Nastavite lastnost obrazca KeyPreview na true in napišite obravnavo dogodkov OnKeyPress:

Procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
začeti
if ord(key)=vk_Return then
Form1.SelectNext(PriemForm.ActiveControl, true, true);
konec;

Ta upravljalnik omogoča krmarjenje po elementih obrazca, ko pritisnete tipko Enter. Upoštevati je treba, da ta metoda ne bo delovala z gumbi, ker ... pritisk Enter na gumbu povzroči, da ga kliknete, medtem ko pritisk Tabulatorke osredotoči vnos na naslednjo komponento v preklopnem zaporedju.

Privzeti gumbi

Vsi isti uporabniki se hitro navadijo na dejstvo, da lahko v pogovornih oknih aplikacij praviloma svojo izbiro potrdite s tipko Enter in prekličete s tipko Esc. Ne razočarajmo jih v naših programih, še posebej, ker je zelo enostavno narediti. Za gumb, ki se odzove na Enter, nastavite lastnost Privzeto na true. Za gumb, ki se odzove na Esc, nastavite lastnost Prekliči na true. To je vse.

ja ali ne

Vse pogovorna okna, ki zahteva dejanja uporabnika, mora imeti vsaj dva gumba: potrditev dejanja in zavrnitev dejanja (Da/Ne, Shrani/Prekliči itd.). Dejanje lahko prekličete tako, da zaprete okno z gumbom [X] v naslovu okna. Nesprejemljivo je, če obstaja le en gumb za potrditev akcije, za zavrnitev pa naj bi zaprli okno z gumbom [X] v naslovu ali pa zavrnitve sploh ni. To uporabnika zmede in postavlja logično vprašanje: kako zavrniti?

Prav tako ne pozabite, kar je bilo povedano zgoraj v odstavku »Privzeti gumbi«.

Vsa pogovorna okna se morajo odpreti na sredini zaslona

Na sredini, ne tam, kjer so bili ustvarjeni v načinu načrtovanja. Prvič, je bolj vizualen, in drugič, samodejno odpravi problem različnih ločljivosti zaslona za različne uporabnike.

Izjema je, če pogovorno okno ni modalno in se zaradi uporabnikovega dela v tem oknu takoj pojavijo spremembe v glavnem oknu (na primer filtriranje nabora podatkov, ponovno risanje grafov itd.).

Velikost oken ne sme presegati velikosti zaslona

V nobenem primeru. Sramotno je, če del okna sega čez zaslon. Ta zahteva ni odvisna od ločljivosti uporabnikovega zaslona, ​​tj. izgovori, kot je "Naj nastavijo višjo ločljivost", ne delujejo.

Pravilno spreminjanje velikosti okenskih elementov

Elementi okna morajo spremeniti velikost ali se pravilno premakniti, ko oknu spremenite velikost, ko je okno povečano in ko je okno po povečanju obnovljeno.

Vedno je vse vidno

Zmanjšanje velikosti okna ne bi smelo povzročiti izginotja okenskih elementov in po možnosti ne bi smelo povzročiti pojava drsnih trakov (drsnikov) samega okna. Omejite lahko najmanjše velikosti oken, tako da so vsi elementi vidni in dostopni. Če komponent ni mogoče postaviti tako, da bi bile vse vidne v oknu, lahko uporabite zaznamke (kot je PageControl), da komponente razdelite v skupine. Prav tako ne zanemarimo izgovorov glede ločljivosti zaslona.

Namigi povsod, vedno namigi

Za gumbe, zlasti na orodnih vrsticah (kot je orodna vrstica), je treba določiti namige, da bo vedno jasno, zakaj je ta ali oni gumb potreben.

Barvni spekter

Sestavnih delov na obrazcu ne smete barvati v vseh barvah mavrice. To utruja oči in odvrača uporabnikovo pozornost. Ne izgleda "kul". Označevanje se uporablja, ko je treba pritegniti pozornost uporabnika na določen element ali določen del okna. Na primer zapise, ki vsebujejo napake, pobarvajte s svetlo rdečo barvo ali, nasprotno, zapise, ki so bili uspešno preverjeni, pobarvajte s svetlo zeleno barvo.

Zaključek

Obstaja zelo dobra metoda, ki vam omogoča iskanje pomanjkljivosti v programu na splošno in zlasti v vmesniku. Preprosto: predstavljajte si sebe na mestu uporabnika in pol ure poskušajte delati tako, kot dela on. Še bolje je, če je vaš uporabnik v dosegu (na primer dela v isti organizaciji). V tem primeru se usedite zraven njega ali še bolje namesto njega in poskušajte opraviti njegovo delo. Vnos podatkov, spreminjanje, prikaz poročil itd. Če ne veste, kako to narediti prav, vprašajte svojega uporabnika. Ne samo ene ali dveh operacij istega tipa, kot v načinu odpravljanja napak, ampak 20-30 ali celo več različnih operacij v različnih vrstnih redih. Nekaj ​​pozabite vnesti ali pa vnesite napačno in poglejte, kako se program na to odzove. Hitro boste videli slabosti svojega programa.

Avtor članka je delo sprejemne komisije na univerzi avtomatiziral in v prvem letu uvedbe programa je v sprejemni komisiji preživel 3-4 ure na dan, prijavljal kandidate, izpolnjeval njihove osebne podatke in jih izdajal. poročila o opravljenih izpitih. In za ostalo delovni čas popravljene napake in pomanjkljivosti. Verjemite mi, naslednje leto skoraj ne bo več težav. Enako se je zgodilo ob uvedbi kadrovskega modula.

Zato imejte v mislih uporabniško izkušnjo. Poskrbite, da bo delo z vašimi programi enostavno in prijetno.

Ena in najbolj prednosti okolju Delphi programiranje je njegova odprta arhitektura, zahvaljujoč kateri Delphi omogoča nekakšno metaprogramiranje, ki vam omogoča "programiranje programskega okolja." Ta pristop prevede Delphi v visoko kakovost nova raven sisteme za razvoj aplikacij in omogoča vgradnjo dodatnih orodij v ta izdelek, ki podpirajo skoraj vse stopnje ustvarjanja aplikacijski sistemi. Tako širok spekter možnosti se odpira zahvaljujoč konceptu tako imenovanih odprtih vmesnikov, implementiranih v Delphiju, ki so povezovalni člen med IDE (Integrated Development Environment) in zunanjimi orodji.

Ta članek je posvečen odprtim vmesnikom Delphi in nudi pregled zmogljivosti, ki jih ponujajo. Delphi definira šest odprtih vmesnikov: orodni vmesnik, oblikovalski vmesnik, strokovni vmesnik, datotečni vmesnik, vmesnik za urejanje in vmesnik za nadzor različic. Malo verjetno je, da bi v okviru tega članka lahko podrobno zajeli in ponazorili zmožnosti vsakega od njih. Izvorna besedila Delphi vam bodo pomagala bolje razumeti obravnavana vprašanja; na srečo so jim razvijalci zagotovili podrobne komentarje. Deklaracije razredov, ki predstavljajo javne vmesnike, so vsebovane v ustreznih modulih v imeniku...\Delphi\Source\ToolsAPI. Design Interface (modul DsgnIntf.pas) nudi orodja za ustvarjanje urejevalnikov lastnosti in urejevalnikov komponent.

Urejevalniki lastnosti in komponent so tema, vredna ločene razprave, zato naj spomnimo, da urejevalnik lastnosti nadzoruje vedenje inšpektorja objektov, ko poskuša spremeniti vrednost ustrezne lastnosti, urejevalnik komponent pa se aktivira, ko dvojni klik levi gumb miške na sliki komponente, postavljene na obrazec. Vmesnik za nadzor različic (modul VCSIntf.pas) je namenjen izdelavi sistemov za nadzor različic. Delphi od različice 2.0 naprej podpira integriran sistem za nadzor različic Intersolv PVCS, tako da v večini primerov ni potrebe po razvoju lastnega sistema. Iz tega razloga bomo tudi izpustili upoštevanje vmesnika za nadzor različic. Datotečni vmesnik (modul FileIntf.pas) omogoča preglasitev delujočega datotečnega sistema IDE, kar omogoča izbiro lastnega načina shranjevanja datotek (na primer v poljih Memo na strežniku baze podatkov). Vmesnik za urejanje (modul EditIntf.pas) omogoča dostop do vmesnega pomnilnika izvornega besedila, ki vam omogoča analizo in generiranje kode, določanje in spreminjanje položaja kazalca v oknu urejevalnika kode ter nadzor sintaktičnega označevanja izvornega besedila.

Posebni razredi zagotavljajo vmesnike do komponent, nameščenih na obrazcu (določanje vrste komponente, pridobivanje referenc na nadrejene in podrejene komponente, dostop do lastnosti, prenos fokusa, brisanje itd.), do samega obrazca in do datoteke virov projekta. Vmesnik za urejanje omogoča tudi identifikacijo tako imenovanih modularnih obvestil, ki določajo reakcijo na dogodke, kot so spreminjanje izvornega besedila modula, spreminjanje obrazca, preimenovanje komponente, shranjevanje, preimenovanje ali brisanje modula, spreminjanje datoteke virov projekta, itd. Orodni vmesnik (modul ToolIntf. pas) ponuja razvijalcem sredstva za pridobitev splošne informacije o stanju IDE in izvajanju dejanj, kot so odpiranje, shranjevanje in zapiranje projektov in posameznih datotek, ustvarjanje modula, pridobivanje informacij o trenutnem projektu (število modulov in obrazcev, njihova imena itd.), registracija datotečni sistem, organizacija vmesnikov do posameznih modulov itd. Poleg modularnih obveščevalcev orodni vmesnik definira obveščalce dodatkov, ki obveščajo o dogodkih, kot so odpiranje/zapiranje datotek in projektov, nalaganje in shranjevanje projektne datoteke namizja, dodajanje/izključevanje projektnih modulov, nameščanje/odstranjevanje paketov, prevajanje projekta in in Za razliko od modularnih obveščevalcev vam obveščalniki dodatkov omogočajo preklic izvajanja nekaterih dogodkov.

Poleg tega vmesnik orodja omogoča dostop do glavnega menija Delphi IDE, kar vam omogoča, da vanj vdelate dodatne elemente. Ekspertni vmesnik (modul ExtIntf.pas) je osnova za ustvarjanje ekspertov – programskih modulov, vgrajenih v IDE za razširitev njegove funkcionalnosti. Primer strokovnjaka je Delphi Database Form Wizard, ki generira obrazec za ogled in spreminjanje vsebine tabele zbirke podatkov. Ko smo definirali ekspertni razred, moramo zagotoviti, da se Delphi »izve« o našem strokovnjaku. Če želite to narediti, ga morate registrirati tako, da pokličete proceduro RegisterLibraryExpert in mu kot parameter posredujete primerek razreda strokovnjakov. Za ponazoritev izdelajmo preprostega strokovnjaka v slogu esStandard, ki ob izbiri ustrezne menijske točke Delphi prikaže sporočilo, da se izvaja. Kot lahko vidite iz zgornje tabele, slog esStandard zahteva preglasitev šestih metod:

Da bi strokovnjaka »zagnali v akcijo«, morate izbrati menijsko postavko Component/Install Component..., v pogovornem oknu Prebrskaj izbrati modul, ki vsebuje strokovnjaka (v našem primeru exmpl_01.pas), klikniti V redu in po prevajanju paketa dclusr30.dpk V glavnem meniju Delphi, v razdelku Pomoč, bi se moral pojaviti element Simple Expert 1, ko je izbran, se prikaže informacijsko sporočilo "Standard Expert started!". Zakaj Delphi postavko strokovnega menija postavi v razdelek Pomoč, ostaja skrivnost. Če vam ni všeč, da se menijska postavka pojavi kjer koli želi Delphi in ne kjer želite, je možna naslednja možnost: ustvarite strokovnjaka v slogu dodatka, ki odpravi samodejno ustvarjanje menijske postavke in dodajte postavko menija »ročno« z orodnim vmesnikom. To vam bo omogočilo, da nastavite lokacijo novega elementa v glavnem meniju na poljuben način.

Če želite dodati postavko menija, uporabite razred TIToolServices - osnova vmesnika orodja - in razreda TIMainMenuIntf, TIMenuItemIntf, ki implementirajo vmesnike do glavnega menija IDE in njegovih elementov. Primerek razreda ToolServices TIToolServices ustvari sam IDE, ko je inicializiran. Upoštevajte, da je odgovornost za sprostitev vmesnikov v glavni meni Delphi in njegove postavke v celoti v rokah razvijalca. Ob tem nekoliko zapletimo funkcionalno obremenitev strokovnjaka: ko aktivirate njegov menijski element, bo izdal potrdilo o imenu projekta, odprtega v ta trenutek v okolju: V tem primeru osrednje mesto zavzema funkcija AddIDEMenuItem, ki doda menijsko postavko v glavni meni Delphi IDE. Kot parametre prejme besedilo novega menijskega elementa, njegov identifikator, identifikator elementa, pred katerega je vstavljen nov element, simbolno predstavitev tipke, ki jo lahko skupaj s tipko Ctrl uporabimo za hiter dostop na nov element in obravnavo dogodkov, ki ustreza izbiri novega elementa. Dodali smo nov menijski element v razdelku Pogled pred elementom Ure.

Zdaj pa se seznanimo z prijavitelji. Definirajmo obveščalnik dodatka, ki sledi zapiranju/odpiranju projektov in temu primerno prilagodi polje za shranjevanje imena aktivnega projekta (zaradi kratkosti bomo izpustili implementacijo metod, ki niso bile spremenjene v primerjavi s prejšnjim primerom): implementiramo obvestilo, definirali smo razred TAddInNotifier, ki je potomec TIAddInNotifier, in preglasili metodo FileNotification. IDE bo poklical to metodo vsakič, ko pride do dogodka, na katerega se lahko odzove obvestilnik dodatka (vsak tak dogodek je označen z ustrezno konstanto tipa TFileNotification). Polje Expert v razredu TAddInNotifier se uporablja za povratne informacije s strokovnjakom (metoda TAddInNotifier.FileNotification). V strokovnjakovem destruktorju je obvestilo odjavljeno, obvestilo pa uničeno. Zdaj pa ponazorimo uporabo modularnih obveščevalcev. Ustvarimo strokovnjaka za dodatke, ki izdaja sporočila o vsakem dejanju shranjevanja projektne datoteke (zaradi jedrnatosti ne predstavljamo izvedbe metod, ki jih že poznamo): V tem primeru strokovnjak za dodatke spremlja dogodke ustreza odpiranju/zapiranju projektov.

Vsakič, ko se odpre projekt, se registrira modularni obveščalnik, ki ustreza datoteki projekta. Kar zadeva implementacijo, so modularni obveščevalci podobni obvestilom dodatkov: definiramo razred TModuleNotifier, ki je potomec TIModuleNotifier, in preglasimo njegovi metodi Notify in ComponentRenamed. IDE pokliče metodo Notify, ko pride do določenih dogodkov, povezanih s tem modulom; V okviru te metode se ugotavlja reakcija na določen dogodek. Metoda ComponentRenamed se pokliče, ko se spremeni ime komponente na obrazcu modula. Upoštevajte, da te metode ne uporabljamo, vendar jo moramo preglasiti, sicer bo ob spremembi imena komponente poklicana abstraktna metoda osnovnega razreda, kar vodi do nepredvidljivih posledic.

Registracija modularnega obveščalnika je nekoliko bolj zapleten postopek v primerjavi z registracijo obveščalnika dodatka: najprej pridobimo vmesnik modula (TIModuleInterface), nato pa z vmesnikom modula registriramo obveščalnik. Ko je projekt zaprt, je modularni obveščalnik odjavljen (spet z uporabo TIModuleInterface) in obveščalnik je uničen. Na koncu bomo pokazali, kako lahko določite položaj kazalca v oknu urejevalnika kode. Izdelajmo eksperta, ki bi ob izbiri ustreznega menija prikazal sporočilo z imenom aktivne datoteke in položaj kazalca v njej (prikazana je implementacija le metod, ki so bistvene za ta primer): Če želite določiti položaj kazalca, pridobiti moramo naslednje zaporedje vmesnikov: modularni vmesnik (TIModuleInterface); vmesnik urejevalnika kod (TIEditorInterface); vmesnik predstavitve modula v oknu urejevalnika (TIEditView).

Če je ob izbiri menijske postavke strokovnjaka aktivna izvorna besedilna datoteka (*.pas), se prikaže sporočilo z imenom aktivne datoteke in trenutnim položajem kazalca v njej. Če aktivna datoteka ni datoteka pas, potem sporočilo ni izdano. Če želite pridobiti ime aktivne datoteke, uporabite metodo GetCurrentFile razreda TIToolServices. S tem smo zaključili naše razmišljanje o načinih uporabe odprtih vmesnikov. CD-ROM vsebuje izvorno kodo za vse podane primere. CD-ROM vsebuje tudi bolj zapleten in podroben primer, ki vsebuje strokovnjaka za dodatke, ki uporabniku omogoča dodajanje izvornega besedila modulov Delphi med zaznamke. Kratek vodnik za namestitev in uporabo Bookmarks Expert je v datoteki bkmrks97.htm. Ta članek torej ponuja splošen pregled odprtih vmesnikov in ponuja primere njihove uporabe. Naj še enkrat ponovimo: zahvaljujoč razpoložljivosti izvornih kod za odprte vmesnike lahko preprosto razumete podrobnosti, ki vas zanimajo. Upamo, da vam bo raznolikost možnosti, ki jih ponujajo odprti vmesniki, dala več kot eno drzno in uporabno idejo.

samo za rezultat

dosledno upoštevanje rokov

Preglednost

izvajanje projekta

tehnična podpora kot darilo

Programiranje, modifikacije, svetovanja o 1C

Kako delamo

1. O težavi se pogovorimo po telefonu. V prisotnosti oddaljen dostop- prikaz na zaslonu računalnika.

2. Ocenimo delo v rubljih, če je projekt velik, če ne, približno število ur.

3. Delo opravimo.

4. Delo v vašem programu sprejmete, če so pomanjkljivosti, jih odpravimo.

5. Mi izdamo račun, vi plačate.

Stroški dela

1. Vse delo je razdeljeno v 3 kategorije: svetovanje, posodabljanje standardne konfiguracije, razvoj ali programiranje novega poročila, obdelava, gumb itd.

3. Delo nad 10 ur mora biti pripravljeno vnaprej. tehnična naloga z opisom in ceno dela. Dela se pričnejo po dogovoru o tehničnih specifikacijah z vami.

Tehnična podpora

1. Če v roku 3 mesecev odkrijete napake v predhodno sprejetem delu, jih brezplačno odpravimo.

2. Rednim strankam brezplačno odpravimo morebitne pomanjkljivosti pri delu v enem letu.

Programska oprema za upravljanje vašega podjetja.

Kupite 1C:Enterprise

Mi smo uradni prodajalec 1C podjetje, pri nas lahko kupite različne programski izdelki in licence. Poleg nakupa “boxa” vam bomo pomagali pri nastavitvi programa, svetovanju in osnovnih nastavitvah.

  • Računovodstvo
  • Avtomatizacija trgovine
  • Trgovina na debelo
  • Pomoč pri namestitvi in začetna nastavitev vključeno v paket!
  • Natančna prilagoditev konfiguracij potrebam strank, razvoj novih modulov v odsotnosti potrebnih funkcij v standardni konfiguraciji.
1c računovodstvo 1C: Upravljanje trgovine 1C: Trgovina na drobno 1C: Plače in upravljanje osebja
Od 3300 rub. Od 6700 rub. Od 3300 rub. Od 7400 rub.

Zagotavljanje strežnika.

Takojšnja nastavitev strežnika + 1C.

Brez strežnika? Ni problema, izbrali in hitro bomo postavili strežnik v oblaku. Za majhno plačilo dobite zelo zanesljivo rešitev.

  • Dosegljivost 24\7
  • Ni vam treba obdržati svojega sistemski administrator(prihranek bo pokril stroške vašega strežnika).
  • Hitra nastavitev in namestitev 1C na strežnik, v 3 dneh boste že imeli popolnoma delujoč sistem.
  • Lahko se preselite na lokalni strežnik, če rešitev ni zadovoljiva.

SMS iz vašega 1C

Želite, da vaše stranke izvedo za akcije in popuste? Ali se stranke ne vračajo? Nastavite pošiljanje SMS neposredno iz 1C!

Naše podjetje bo lahko hitro nastavilo pošiljanje SMS vašim strankam neposredno iz 1C. Primeri dogodkov, ki jih je mogoče avtomatizirati:

  • Zahvala za nakup in bonusi so podeljeni takoj po naslednjem nakupu.
  • Pripis bonusov na kartico kot darilo za rojstni dan\drug pomemben ali praznik.
  • Obvestilo o prihodu blaga v skladišče.
  • Potek darilnih bonusov.
  • Obvestilo o prejemu akontacije in rezervacija blaga.
  • Naslov z navodili do trgovine/pisarne, telefonske številke.
  • In tako naprej.

Nastavitev v 1C lahko opravijo naši strokovnjaki ali vaši zaposleni. Tarife si lahko ogledate na strani SMS tarife.

  • Zagotovljena dostava SMS, denar se zaračuna samo za dostavljen SMS.
  • Za vsak SMS ločena cena.
  • Dopolnite dobroimetje na različne načine.
  • Kadar koli si oglejte zgodovino vseh poslanih SMS-ov.
  • Ime pošiljatelja namesto digitalne številke v telefonu prejemnika sporočila.

Objektno orientirano programiranje (OOP) poleg koncepta razreda predvideva tudi temeljni koncept vmesnika.

Kaj je vmesnik in kakšne so značilnosti dela z njim v programskem jeziku Delphi?

Vmesnik je semantična in sintaktična konstrukcija v programski kodi, ki se uporablja za določanje storitev, ki jih ponuja razred ali komponenta (Wikipedia).

V bistvu vmesnik definira seznam lastnosti in metod, ki jih je treba uporabiti pri delu z razredom, ki ga ta vmesnik izvaja, kot tudi njihov podpis (ime, tip podatkov, sprejeti parametri (za procedure in funkcije) itd.). Tako mora razred, ki implementira določen vmesnik, implementirati vse njegove komponente. Še več, v strogem skladu s tem, kako so v njem opisani.

Vmesnike pogosto primerjamo z abstraktnimi razredi, a kljub vsem podobnostim ta primerjava ni povsem pravilna. Vsaj abstraktni razredi vam omogočajo nadzor nad vidnostjo članov. Hkrati obsegi niso definirani za vmesnike.

Vmesniki vam omogočajo, da naredite arhitekturo bolj prilagodljivo, saj poenotijo ​​dostop do te ali one funkcionalnosti, poleg tega pa vam omogočajo, da se izognete številnim težavam, povezanim z dedovanjem razredov (vmesniki se lahko tudi dedujejo drug od drugega).

Če želite deklarirati vmesnik v Delphiju, uporabite ključno besedo vmesnik. To je ista ključna beseda, ki definira del modula, do katerega je mogoče dostopati od zunaj (med ključnima besedama za vmesnik in implementacijo). Vendar se pri deklaraciji vmesnika uporablja druga sintaksa, podobna deklaraciji razredov.

Delphi/Pascal

IMyNewInterface = vmesniška procedura InterfaceProc; konec;

IMyNewInterface =vmesnik

postopek InterfaceProc;

konec ;

Tako se sama sintaksa deklaracije vmesnika bistveno ne razlikuje od drugih programskih jezikov (značilnosti sintakse, ki temelji na Pascalu, ne štejejo). Hkrati ima izvedba vmesnikov številne značilne lastnosti.

Dejstvo je, da so bili vmesniki Delphi prvotno predstavljeni za podporo tehnologije COM. Zato vmesnik IInterface, ki je v Delphiju prednik vseh ostalih vmesnikov (nekakšen analog TObject), že vsebuje tri osnovne metode za delo s to tehnologijo: QueryInterface, _AddRef, _Release. Posledično, če razred implementira katerikoli vmesnik, mora implementirati tudi te metode. Tudi če ta razred ni namenjen delu COM.

Zaradi te lastnosti vmesnika IInterface v Delphiju uporaba vmesnikov v večini primerov vodi do dodajanja očitno neuporabljenih zmogljivosti v razred.

Obstaja knjižnični razred TInterfaceObject, ki že vsebuje implementacijo teh metod in pri dedovanju od njega ni potrebe, da bi jih implementirali sami. Ker pa Delphi ne podpira večrazrednega dedovanja, njegova uporaba pogosto povzroča le dodatne težave pri oblikovanju in izvajanju že zahtevane funkcionalnosti.

Vse to je privedlo do tega, da kljub vsem možnostim, ki jih ponujajo vmesniki, le-ti praktično uporabo V Delphiju skoraj nič ni preseglo dela s COM.

Ker so optimizirani predvsem za delo s to tehnologijo, vmesniki oziroma funkcionalnosti in arhitekturne omejitve, ki jih nujno dodajo, ne opravičujejo pri reševanju drugih težav.

Zato je veliko Delphi programerjev še vedno dejansko prikrajšanih za zmogljivo in prilagodljivo orodje za razvoj aplikacijske arhitekture.

Ustvarjanje vmesnik uporabnik je omejen na izbiro iz palete komponent, potrebnih za delovanje programa Delphi komponente, zaposleni vmesnik upravljanje, kot tudi vmesnik prikaz informacij in njihov prenos v obrazec z naknadno postavitvijo.

Uporabniški vmesnik, ki ga ustvarite, mora uporabljati standardne elemente, ki so uporabnikom znani, in zagotavljati maksimalno udobje. Vse to na koncu določa merilo, kot je učinkovitost vmesnika - največji rezultati z minimalnim naporom.
Načela ustvarjanja uporabniku prijaznega vmesnika so znana. Kot najbolj splošna načela pri ustvarjanju uporabniški vmesniki Upoštevati je mogoče tri glavne točke:

  1. Program bi moral pomagati pri dokončanju naloge in ne postati ta naloga.
  2. Pri delu s programom se uporabnik ne sme počutiti kot bedak.
  3. Program naj deluje tako, da uporabnik računalnika ne bo imel za bedaka.
Prvo načelo- to je tako imenovana "transparentnost" vmesnika. Uporabniški vmesnik naj bo intuitiven, enostaven za učenje in uporabniku ne sme povzročati težav, ki jih bo moral premagovati med delovnim procesom. Uporabite standardne komponente brez nepotrebnega olepševanja, uporabite znane tehnike nadzora, ki jih uporabljajo podobni programi, in dosegli boste merila uspešnosti prvo načelo.

Drugo načelo je zanemarjanje intelektualnih sposobnosti uporabnikov. Iz lastnih izkušenj vem, da pogosto uporabniki ne samo, da ne znajo delati na računalniku, ampak se preprosto bojijo narediti karkoli sami. Zato naj bo uporabniški vmesnik čim bolj prijazen.
Poleg tega so strahovi uporabnikov pogosto upravičeni, saj se stroški programa in celo samega računalnika ne morejo primerjati s stroški, na primer, podatkovne baze, ustvarjene z dolgoletnim trudom. Zato mora programer pri izdelavi uporabniškega vmesnika v program vedno vgraditi »varno zaščito« - pred nepravilnimi dejanji in vnosom napačnih podatkov s strani uporabnika. Toda nekateri programerji se s tako zaščito preveč zanesejo, jo naredijo preveč vsiljivo in posledično delovanje programa spominja na tisto slavno »korak levo, korak desno velja za beg«! In kar programer ustvari kot rešitev problema, začne samo ustvarjati probleme.
Upoštevati drugo načelo programu ni treba dovoliti, da "popravi" uporabnikova dejanja in natančno navede, kako naj ravna, ter ga prisili v ozek okvir. Prav tako se ne smete preveč ukvarjati s prikazovanjem informativnih sporočil, zlasti pogovornih, saj to odvrača uporabnika od dela. Bolje bi bilo zagotoviti možnost popolne onemogočitve namigov.

Tretje načelo je ustvariti program z najvišjimi možnimi "mentalnimi" zmožnostmi. Kljub hitremu razvoju računalniška oprema, lahko celo zelo razširjene programe le zelo pogojno imenujemo umetna inteligenca. V delo uporabnika posegajo s prikazovanjem pogovornih oken z neumnimi vprašanji, ki povzročajo zmedo že v najpreprostejših situacijah. Kot rezultat, uporabniki v svojih srcih vzkliknejo: "Kakšen neumen stroj!"
Mene osebno jezijo nenehna vprašanja skoraj vseh urejevalniki besedil o tem, ali shraniti spremenjeno besedilo, čeprav se prvotno in trenutno besedilo ne razlikujeta v nobenem simbolu. Ja, nekaj sem tipkal, potem pa sem vse vrnil nazaj, ali je res nemogoče ugotoviti! Moram preveriti, če nisem vseeno kaj uničil.

Poskusite se držati naslednjih pravil:

Standardni elementi vmesnika
Uporabite komponente, ki so standardne za ta element vmesnika. Ko uporabnik naleti na vaš program, ne bo izgubljal časa s spoznavanjem, ampak bo takoj začel delati - to je eden od znakov profesionalno izdelanega programa.
Majhna paleta orodij
Poskusite ne uporabljati preveč različnih komponent. In seveda, ko ste uporabili eno standardno komponento nekje na enem mestu, jo uporabite tudi v podobnem primeru.
Enak razmik med kontrolami
Elemente vmesnika postavite na enako razdaljo drug od drugega. Naključno raztresene komponente ustvarjajo občutek neprofesionalno izdelanega izdelka. In obratno, skrbno preverjena postavitev gumbov, stikal, potrditvenih polj in drugih komponent, ki sestavljajo vmesnik na obrazcu, je znak kakovostnega dela.
TabOrder. "Pravilno zaporedje
TabOrder je vrstni red, v katerem se zaslonski kazalec premika po kontrolnikih, ko pritisnete tipko Tab. V pravilno napisanem programu se kazalec premika po logiki uporabnikovega dela s programom. Pri ustvarjanju programa programer pogosto spreminja komponente, nekatere odstrani in po potrebi doda druge. Posledično v končanem programu kazalec kaotično skače po obrazcu. Ko končate program, ne pozabite konfigurirati TabOrder.
Izbira pisave
Samo pustite pisave pri miru. Delphijeve privzete pisave so primerne za vsak sistem, v katerem se lahko izvaja vaš program. Uporabite krepko pisavo samo za poudarjanje pomembnih elementov. Aplikacija poševno in predvsem podčrtavanje, ki bi ga uporabnik lahko zamenjal za hiperpovezavo, je slaba oblika.
Izbira barv
Kar zadeva barve elementov vmesnika, je tako kot pri pisavah bolje, da jih pustite privzeto standardne. Delphi uporablja sistemsko paleto Windows, uporabnik pa lahko enostavno prilagodi barve tako, da jo spremeni.
Alternativno upravljanje
Profesionalno izdelan program naj bi bilo mogoče upravljati ne samo z miško, ampak tudi s tipkovnico. Ne sme biti funkcij, ki jih je mogoče izvajati samo z miško (risanje s grafični urejevalniki ne šteje!). Za najpogosteje uporabljene funkcije bi morali zagotoviti "vroče tipke" za hiter dostop.
Vmesniške opeke
Pri posameznih elementih uporabniškega vmesnika je kakovost interakcije uporabnika s programom odvisna od:
  • skladnost krmilnega elementa z nalogo, ki jo opravlja;
  • pravila, po katerih deluje krmilni element.
    Ta stran obravnava pravila za ustvarjanje nekaterih elementov vmesnika.
In zdaj želim pokazati, katera orodja ponuja Delphi za upravljanje komponent na obrazcu, njihov relativni položaj in obnašanje kazalca, ko pritisnete tipko Tab.

Najprej razporedite komponente med seboj v pravilnem vrstnem redu jih je treba izpostaviti. Lahko preprosto obkrožite območje na obrazcu, ki vsebuje izbrane komponente. Ali tako, da držite " Shift", z isto miško označite vsako komponento, ki jo želite izbrati. Ponovno kliknite z miško na izbrano komponento (medtem ko pritisnete " Shift") prekliče izbiro.

Izbrane komponente je mogoče upravljati kot eno celoto - premikati po obrazcu, dodeljevati vrednosti istim lastnostim, kopirati (za namestitev, na primer na drug obrazec), celo izbrisati.

Zdaj z desno miškino tipko kliknite eno od komponent in izberite v pojavnem meniju Položaj -> Poravnaj ... Prikaže se pogovorno okno, v katerem lahko prilagodite vodoravni in navpični položaj komponent v skupini. Na primer, naše štiri gumbe moramo poravnati na levo in zagotoviti, da imajo enako navpično razdaljo med njimi. Če želite to narediti, izberite izbirne gumbe Vodoravno: leve strani in Navpično: Enakomerni prostor.

Z izbiro artikla Center, bomo sestavne dele razporedili tako, da bodo njihova središča na isti liniji vodoravno ali navpično, in element Središče v oknu premakne komponente na sredino okna, tudi vodoravno ali navpično.

V isti vrstici menija Tab O red... povzroči, da se prikaže pogovorno okno, ki nadzira, kako se kazalec premika skozi elemente vmesnika, ko pritisnete tipko Tab. Ko se obrazec prikaže na zaslonu, bo kazalec seveda na komponenti, ki se nahaja v prvi vrstici pogovornega okna. In potem se bo pomaknil navzdol po seznamu. V pogovornem oknu dve modri puščici gor in dol nadzorujeta položaj izbrane komponente. Izberite želeno komponento, jo s puščicami premaknite v želeno vrstico na seznamu itd.

Pri izbiri elementa menija Nadzor -> Prikaže se podmeni, sestavljen iz dveh elementov:

  • Postavi v ospredje
  • Pošlji nazaj
To so komponente komponent, ki so na voljo tudi programsko. Button1.SendToBack premakne gumb v "ozadje" in Button1.BringToFront- pripelji spredaj". To pomeni, da če je ena komponenta postavljena nad drugo, te metode zamenjajo svoje položaje. Primeri, v katerih bi to lahko veljalo, so precej očitni.


Vrh