Soovitused graafiliste kasutajaliideste loomiseks. Piirang. See klass on põhiklassi edasine laiendus. Selle eksemplaridel on täiendavad võimalused oma järglaste suuruse ja asukoha juhtimiseks. Näiteks

Reegel 2: vähendage kasutajate koormust

Reegel 3: muutke liides ühilduvaks

Juhised

Korrastatud Start Menu programm

Järeldus

Kirjandus

Sissejuhatus

"Kuvanduse kuldreegel on: "Ära tee kunagi teistele seda, mida nad sulle tegid." ”

Tracy Leonard

Miks peaksite järgima kasutajaliidese kujundamise põhimõtteid?

Tarkvara tuleb arendada arvestades kasutaja nõudeid ja soove – süsteem peab kohanema kasutajaga. Seetõttu on disainipõhimõtted nii olulised.

Arvutikasutajad võivad saada edukaid kogemusi, mis sisendavad kindlustunnet oma võimete vastu ja tõstavad arvutiga töötades kõrget enesehinnangut. Nende tegevust arvutiga võib iseloomustada kui "edu sünnitab edu". Iga positiivne kogemus programmiga võimaldab kasutajal laiendada oma teadmisi tarkvaraga ja tõsta oma pädevustaset. Hästi läbimõeldud liides, nagu hea õpetaja ja õpikud, tagab viljaka suhtluse kasutaja ja arvuti vahel. Edukad liidesed võivad isegi aidata inimesel tavapärasest kasutatavatest programmidest välja murda ja uusi avastada, süvendada arusaamist liideste ja arvutite toimimisest.

Liidese kujundamise põhimõtted on kõrgetasemelised kontseptsioonid ja vaated, mida saab tarkvara kujundamisel kasutada. Peate kindlaks määrama, milline põhimõte on teie süsteemi jaoks kõige olulisem ja vastuvõetavam.

Projekteerimise alustamisel on vaja esile tõsta kõige olulisem põhimõte, mis saab kompromisside otsimisel määravaks. Kõigi disainipõhimõtete järgimine võib viia selleni, et mõnes olukorras ei tasu see end ära ja avaldab lõpptulemusele negatiivset mõju. Põhimõtted on tegevusjuhised.

Kasutajaliidese kujundamise kolm põhimõtet on sõnastatud järgmiselt:

1)kasutaja juhtimine liidese üle;

2) kasutaja mälukoormuse vähendamine;

3)kasutajaliidese järjepidevus.

Kust leida kasutajaliidese disaini põhimõtteid

Hansen esitas esimese nimekirja disainipõhimõtetest. Põhimõtted on järgmised:

1) tunneb kasutajat;

2) vähendada meeldejätmist;

3) optimeerida toiminguid;

4) kõrvaldada vead.

Paljud suuremad operatsioonisüsteemide tootjad avaldavad oma uute toodete turule laskmisel asjakohased juhendid ja juhised. Need väljaanded paljastavad liidese kujundamise lähenemisviisi põhimõtted. Juhendid valmistas Apple Computer, Inc. (1992), IBM Corporation (1992), Microsoft Corporation (1995) ja UNIX OSF/Motif (1993).

Lugejad saavad neid väljaandeid kasutada õppevahendina. Liidese terminoloogia võib juhendites erineda, kuid materjali fookus, keerukusaste ja kirjeldatud kasutajaliidese põhimõtted on kõigi raamatute puhul samad.

Põhimõtete järgimise tähtsus

"Liidese ühildumatus võib suurettevõttele maksta miljoneid dollareid tootlikkuse vähenemise ja suurenenud kulude tõttu. tehniline abi"- Jessie Briest.

Need põhimõtted kehtivad kogu tarkvara ja riistvara, igat tüüpi ja tüüpi liideste puhul. Neid arendati üsna pika aja jooksul: tehti uuringuid tarkvaraliidese vallas, tehti arendustööd ning küsitleti paljude arvutiplatvormide, sealhulgas Macintoshi ja PC kasutajaid.

Need põhimõtted on ajaproovile ja uute esilekerkimisele vastu pidanud. arvutitehnoloogia. Jakob Nielsen märkis: "Põhimõtted jäävad fundamentaalseks isegi siis, kui programmil on sisendiks, liikumistuvastuseks ja reaalajas videopiltidega varustatud futuristlik 3D-disain. Need on asjakohased, kuna väljendavad dialoogi põhiideed masinaga käske.

Nende põhimõtete tõlgendamine sõltub sellest riistvara, operatsioonisüsteem, kasutajaliidese komponendid ja selle ülesanded. Sageli kaaluvad äriotsused üle disainerite põhimõtete kasutamise. Ka kasutaja- ja disainermudelid on erinevad ja mõjutavad põhimõtete rakendamist. Mõnes projektiarenduse olulises etapis võib tekkida küsimus: "Mis saab edasi?" Vastus peaks olema: "Mida iganes kasutaja soovib!"

Otsuse valida optimaalsed liidese kujundamise põhimõtted peaksid kõik disainimeeskonna liikmed ühiselt välja töötama. Need lahendused peaksid aitama parandada tarkvaratoodete ostetavust ja arendamist.

Kasutajaliidese kujundamise reeglid

"Tehke see lihtsamaks, kuid mitte primitiivsemaks."

Albert Einstein

Reegel 1: andke juhtimine kasutajale

Kogenud disainerid võimaldavad kasutajatel mõningaid probleeme oma äranägemise järgi lahendada. Arhitektid peavad kompleksse hoonekompleksi ehitamise lõppedes rajama nende vahele jalakäijatele rajad. Nad ei tea veel täpselt, kus inimesed saidid läbivad. Seetõttu ei rajata teid kunagi üheaegselt hoonete ehitamisega. Majadevahelistele aladele on paigutatud sildid kirjaga: "Palun kõndige murul." Mõne aja pärast tulevad ehitajad tagasi ja alles nüüd täidavad vastavalt elanike “tahtele” tallatud teed asfaldiga.

Põhimõtted, mis annavad kasutajale süsteemi üle kontrolli:

1) kasuta režiime targalt;

2) anda kasutajale võimalus valida: töötada kas hiire või klaviatuuriga või mõlema kombinatsiooniga;

3) võimaldab kasutajal keskenduda;

4) näidata sõnumeid, mis aitavad teda tema töös;

5) luua tingimused koheseks ja tagasipööratavaks tegevuseks, samuti tagasisideks;

6) tagama sobivad teed ja väljapääsud;

7) kohandama süsteemi erineva väljaõppetasemega kasutajatele;

8) teha kasutajaliides arusaadavam;

9) anda kasutajale võimalus kasutajaliidest oma maitse järgi kohandada;

10) võimaldama kasutajal liideseobjektidega vahetult manipuleerida;

Kasutage režiime targalt

Režiimid pole alati halvad. On vaja võimaldada inimesel valida endale vajalikud režiimid. Liides peaks olema nii loomulik, et kasutaja tunneks end mugavalt nendega töötades. Kasutaja ei mõtle tekstitöötlusprogrammis töötades sisestus- või ümberkirjutamisrežiimile üleminekule - see on üsna ratsionaalne ja loomulik.

Lubage inimesel kasutada hiirt ja klaviatuuri

Võimalus töötada klaviatuuriga, kasutades hiire asemel klaviatuuri. See tähendab, et kasutajal on lihtsam töötada, ta lihtsalt kas ei saa seda kasutada või tal pole seda. Tööriistaribad on loodud teie töö kiirendamiseks hiire kasutamisel. Klaviatuuriga töötades pole neid aga võimalik saavutada - sellistel juhtudel on ette nähtud rippmenüüd.

Luba kasutajal tähelepanu vahetada

Ärge sundige kasutajaid alustatud toiminguid lõpetama. Andke neile valik – tühistage või salvestage andmed ja naaske sinna, kus pooleli jäid. Andke kasutajatele võimalus programmis töötamise protsessi juhtida.

Näita selgitavaid sõnumeid ja tekste

Kasutage kogu liideses kasutajasõbralikke termineid. Nad ei pea teadma bittide ja baitide kohta!

Sõnumites ja kutsetes tuleks valida õige toon. Sama oluline on kindlustada end probleemide ja vigade vastu. Kehv terminoloogia ja vale toon põhjustavad selle, et kasutajad süüdistavad end esinevates vigades.

Pakkuge kohest ja pöörduvat tegevust ja tagasisidet

Iga tarkvaratoode peab sisaldama UNDO ja REDO funktsioone. Kasutajat tuleks teavitada, et toimingut ei saa tagasi võtta, ja võimalusel lubada alternatiivset toimingut. Hoia inimest pidevalt kursis sellega, mis hetkel toimub.

Pakkuge selged teed ja väljapääsud

Kasutajad peaksid nautima töötamist mis tahes liidesega tarkvaratoode. Isegi tööstuses kasutatavad liidesed ei tohiks kasutajat hirmutada, ta ei peaks kartma vajutada nuppe või minna teisele ekraanile. Internetiinvasioon näitas, et navigeerimine on peamine interaktiivne tehnika Internetis. Kui kasutaja saab aru, kuidas soovitud lehele WWW-s juurde pääseda, siis on 80-protsendiline tõenäosus, et ta saab liidest aru. Inimesed õpivad brauseri tehnikaid väga kiiresti selgeks.

Majutage erineva oskustasemega kasutajaid

Ärge "ohverdage" kogenud kasutajaid tavakasutajate hüvanguks. Neile on vaja tagada kiire juurdepääs programmi funktsioonidele. Ärge väsitage neid toimingu sooritamiseks mitme sammuga, kui nad on harjunud kasutama ühte makrokäsku.

Muutke kasutajaliides "läbipaistvaks"

Kasutajaliides on tarkvaratoote "müütiline" osa. Hea projekti puhul ei tunne kasutajad isegi selle "kohalolu". Kui see on halvasti disainitud, peavad kasutajad selle nimel isegi palju vaeva nägema tõhus kasutamine tarkvaratoode. Liidese eesmärk on aidata inimestel tunda end arvutis “sees”, vabalt manipuleerida ja objektidega töötada. Seda nimetatakse "läbipaistvaks" liideseks!

DOKUMENDI STRUKTUUR

4.1. Visuaalse programmeerimise tehnoloogia

4.1.2. Visual Studio peaaken

4.1.3. VS peamenüü ja tööriistariba

4.1.4. Visual Studio paneeli aknad

4.1.5. VS IDE sätete konfigureerimine

4.1.6. Testiülesanded

4.1.7. Laboritöö teemal “VS .NET arenduskeskkond”

4.1. Visuaalse programmeerimise tehnoloogia
ja põhimõisteid

Võrreldes eelmiste põlvkondade programmeerimiskeeltega keel programmeerimine kõrge tase Visual Basic.Net-il (VB) on number põhimõttelised erinevused. See on võimas professionaalne programmeerimissüsteem, mis võimaldab teil kiiresti ja tõhusalt luua rakendusi MS Windowsi jaoks . Kuna süsteem on « visuaalne», programmeerija saab luua MS Windowsi rakendusest nähtava osa , kirjutamata peaaegu ühtki rida programmi kood. See nähtav osa on kasutajaliidese aluseks « tarkvaraprojekt – kasutaja », mille kaudu kasutaja suhtleb tarkvaraprojektiga. Nii klasside programmikoodi ja ülesande lahendamise meetodite kui ka rakendusprogrammi liidese väljatöötamine toimub põhimõtetel objektorienteeritud lähenemine , rakendatud Visual Studio .Netis (VS) . Rakendused (projektid) töötavad MS Windowsi all kasutades Integreeritud arenduskeskkond (IDE).

Rakenduste jaoks, mis on ehitatud kasutades IDE-d, iseloomulik tunnus on paljude objektide olemasolu ekraanil igal ajahetkel: vormid, aknad, nupud, menüüd, teksti- ja dialoogiboksid, kerimisribad jne. Kasutajal on nende objektide kasutamise osas teatud (olenevalt lahendatava probleemi algoritmist) valikuvabadus. Ta oskab klõpsa hiirenupp, objekti lohistamine, andmete sisestamine aknasse jne. Enamasti pole seda ette oodata kehtestatud järjestus tegevused. Tavaliselt arendaja tarkvara(Tarkvara) ei tohiks tarkvaraprojekti loomisel piirata rakenduse kasutaja tegevust. Ta peab välja töötama tarkvara, mis reageerib adekvaatselt igale kasutaja tegevusele, isegi valele (heas programmis ei tohiks tahtmatuid toiminguid olla). Seetõttu on iga ekraanil oleva objekti jaoks võimalikud sündmused. Osa neist teostab kasutaja: hiirenupu klõpsamine või topeltklõps, objekti lohistamine, klaviatuuriklahvi vajutamine, teksti sisestamine aknasse jne. muud sündmused toimuvad muude sündmuste tagajärjel: näiteks avaneb või sulgub aken, juhtelement muutub aktiivseks (kättesaadavaks) või muutub passiivseks. Pealegi avaldub iga sündmus tarkvaraprojekti teatud toimingutes (reaktsioonides, reaktsioonides, käitumises). Need toimingud võib jagada kahte rühma.



Esimene on objekti omaduste tagajärg. Need omadused on mõne tarkvaraarendaja määratud standardnimekiri omadused, süsteemi poolt antud programmeerimine ja/või MS Windows ise . Selliste toimingute näide on akna minimeerimine pärast nupul klõpsamist Ahenda. Programmeerija ei saa sellistel juhtudel objekti käitumist muuta. Siiski on paljudel juhtudel teatud võimalus objekti reaktsiooni sündmusele (tekst, font, värv, suurus, asukoht ekraanil jne) varieerida, seades teatud atribuute.

Teise grupi tegevuste (reaktsioonide) sündmustele määrab täielikult tarkvaraarendaja. Selle tagab võimalus määrata iga võimaliku sündmuse jaoks VB protseduur. Esialgu on iga selline protseduur tühi, ilma protseduurikehata ja seetõttu ei juhtu sündmuse toimumisel midagi. Teoreetiliselt on võimalik luua protseduur iga sündmuse jaoks, kuid praktikas täidab programmeerija koodi ainult nende sündmuste jaoks, mis pakuvad huvi.

Seega pakub VB kasutajale objektorienteeritud sündmustepõhist programmeerimiskeskkonda. Lihtsamalt öeldes taandub selles keskkonnas tarkvaraprojekti arendamise protsess objektide ja nende omaduste komplekti valimisele, sündmuste ja protseduuride seadistamisele nende töötlemiseks ning probleemi lahendamiseks tarkvara loomisele, mis koos tagavad rakenduse toimimise. loodud.

Peamised visuaalse programmeerimise terminid, nagu eespool mainitud, on objekt, vormi, vara, klass, sündmus, kord, meetod jne., millel on sama tähendus mis tahes visuaalsete rakenduste arenduskeskkonnas.

Objekt– see on teatud eraldiseisev olem, mis erineb teistest olemitest eriliste omaduste, käitumise ja teiste rakendusobjektidega suhtlemise poolest. Objektorienteeritud lähenemise korral on iga rakendus omavahel ühendatud objektide kogum, mis rakendab rakendusele vajalikke funktsionaalseid nõudeid. Objekt on alati konkreetne ja eksisteerib tegelikult vormil (juhtelementidena) või rakenduses (klasside eksemplaridena).

Objektorienteeritud programmeerimise põhiüksuseks on tarkvaraobjekt, mis ühendab endas nii seda kirjeldavad andmed (omadused) kui ka nende andmete töötlemise vahendid (meetodid). See on, tarkvaraobjektid omavad omadusi, oskavad kasutada meetodeid ja reageerida sündmustele.

Visuaalse programmeerimise peamised objektid on vorm ja selle juhtelemendid.

Vorm ) on objekt, mis kujutab akent, millele asetatakse juhtelemendid, näiteks nupp (Nupp); Silt (Silt); Tekstiväli (Tekstikast); Märkeruut (Märkeruut); Nimekiri (ListBox); Rippmenüü (Combobox); Lüliti (Raadio nupp) ja jne .

Visuaalne programmeerimiskeskkond võimaldab näha objekte ekraanil rakenduse projekteerimisetapis ning võimaldab objekte kohandada, muutes nende asukohta, suurust ja muid omadusi. Vorm on esemete konteiner, ja samas on ise ka objekt. Objekti paigutamisel vormile salvestatakse käivitatavas programmikoodis objekti põhiparameetrid. Objektideks on sel juhul ka programmiplokid või programmikoodi fragmendid (klassid, protseduurid, meetodid, moodulid), millest projekteeritav projekt (rakendus) “kokku monteeritakse”.

Objekti vara on väärtus või tunnus, mille objekt salvestab. Samal ajal määrab objekti omaduste kogum selle oleku. Näiteks, Tekst ( Tekst ) või Värv ( BackColor ) vormid, meetod Teksti joondus ( Joondamine ) või Tähemärgi värv ( ForeColor ) tekstiväli on omadused. Programmis pääseb juurde objektile objekti nime järgi . Aknas saab määrata objekti omadusi Omadused ja muuta programmikoodis olevate objektide omadusi.

Programmikoodis on atribuudi määramiseks teatud reeglid (teatud vorming). objekti nimi ja omadusnimi vastavalt punktitähiste reeglitele eraldatakse punktiga .

Klass on objektide kogum, millel on ühised omadused ja käitumine. Näiteks, Nupp1( Nupp1 ) peal Vorm 1(vorm 1 ) kõigi oma spetsiifiliste omaduste ja tegevusega on klassi objekt Nupp . Klassi iseloomustavad sellised objektorienteeritud programmeerimise põhikontseptsioonid nagu:

· pärand – klassiobjektil on kõik klassi omadused, meetodid ja sündmused;

· kapseldamine – objekti keeruka toimemehhanismi varjamine;

· polümorfism – erinevate klasside objektid võivad kasutada sama nimega meetodeid, mis toimivad erinevate objektide puhul erinevalt.

Esemete kogu on kombineeritud objektide kogum üldnimetus, ja need ei pruugi olla sama klassi objektid. Kogude näideteks on VB-sse sisseehitatud kogud, sealhulgas:

· Vormid(Vormid) – allalaaditud taotlusvormide komplekt;

· Juhtnupud(Juhtelemendid) – vormi kõigi juhtelementide komplekt.

Nimeruum on hierarhiline klassiteek, mis on korraldatud ainulaadsete nimede all, näiteks Süsteem.Windows või Süsteem.Matemaatika . Et pääseda juurde klassidele ja nendel põhinevatele objektidele, mis on osa nimeruumist, saab operaatori paigutada programmi koodi algusesse Import . Iga VS-i projekt sisaldab ka juurnimeruumi. Nimeruumi nimetatakse ka VS-i dokumentatsioonis klassi raamatukogud .

Sündmus on vahend objektide ja üksteise vaheliseks suhtlemiseks. Sündmus võib olla kasutaja loodud või tekkida teiste tarkvaraobjektide mõjul. Objektid võivad genereerida sündmusi ja sooritada toiminguid vastuseks määratud sündmustele. Näited sündmustest - vormid , Klõpsake ( Klõpsake ) hiirega objekti kohal, DblClick ( Topeltklõps ) hiir ja teised . Reaktsioonina sündmustele kutsutakse välja sündmusprotseduur, mis võib muuta objekti omadusi, kutsuda seda

VB keeles , nagu paljudes teistes programmeerimiskeeltes, mis on mõeldud MS Windowsi rakenduste kirjutamiseks , kasutatud
sündmustepõhine programmeerimismudel. See tähendab sisuliselt, et ükski rakendus ei saa iseseisvalt toimida ilma teiste rakendustega ja nendega suhtlemata operatsioonisüsteem. Näiteks võtame lihtsaima juhtumi, kui käsk määratakse klaviatuuri klahvi vajutamisega. See ei saa otseselt mõjutada ühtegi rakendust ega MS Windowsi sel juhul tegutseb vahendajana. Pärast klahvivajutuse sündmuse saamist otsustab operatsioonisüsteem, kuhu selle sündmuse töötlemine edastada. Seejärel saadetakse klahvivajutuse teade rakendusele. Rakendus töötleb seda klaviatuuri sisendit sõeludes ja kuvab sõnumi näiteks aktiivsel tekstiväljal.

Rakendused loodud Koos kasutades VB-d , Nad töötavad samal põhimõttel. Sel juhul teeb VB justkui sisetööd. Näiteks kui rakenduses klõpsatakse nupule, tõstetakse sündmus üles – VB püüab kinni vastava MS Windowsi teate ja tõstab sündmuse Klõpsake objektiks Nupp .

Pange tähele, et sündmustepõhistes programmides ei ole pidevat programmikoodi, mis jookseb algusest lõpuni. See tähendab, et pärast programmi käivitamist pole kasutajal selget ettekujutust algoritmi konkreetsest täitmisest. See tähendab, et saate rakenduses igal ajal klõpsata mis tahes nupul või näiteks sisestada väljale teksti või soovi korral töötlemise peatada. Seetõttu on rakendus sunnitud enne määratud programmikoodi käivitamist ootama, kuni üks neist sündmustest toimub. Seega Programmikoodi täitmise alustamiseks on alati vajalik sündmus - see on üks kõige olulisemad reeglid rakenduste loomine MS Windowsi keskkonnas .

Vastus sündmustele on üleskutse sündmuse protseduur , mille on varem loonud tarkvaraarendaja. Sellise protseduuri mõte on programmeeritud toimingute sooritamine: objekti omaduste muutmine, meetodite kutsumine, arvutuste tegemine etteantud algoritmi järgi koos tulemuse väljastamisega teatud kohtadesse rakenduses jne, näiteks kui kasutaja vajutab nuppu, siis sooritatakse vastusena teatud toimingute jada, mis defineeritakse sündmuse protseduuris vastavalt etteantud algoritmile.

Lisaks sündmuste protseduuridele saab kasutaja luua üldprotseduure (kasutajaprotseduure).

Kasutaja protseduur on terviklik programmikood, mis rakendab lahendatava probleemi jaoks eraldi algoritmi. Sellist protseduuri nimetatakse aga protseduuri nime järgi, mitte mingi sündmuse tulemusena.

meetod on protseduur, mis rakendab objektiga võimalikke toiminguid. Nende toimingute tulemusena muutub objektis midagi. VB pakub kasutajale suur hulk sisseehitatud protseduurid, mis asuvad raamatukogus ja on kasutamiseks valmis. Need protseduurid on klassiteegi lahutamatu osa, st need on .NET Frameworki klasside meetodid.

Teenused protseduuriline programmeerimine(protseduurid) - mis tahes kõrgetasemelise programmeerimiskeele lahutamatu osa, mis on paradigma üks peamisi osi kaasaegne programmeerimine. Kuid alles objektorienteeritud programmeerimist toetavate keelte tulekuga võeti kasutusele spetsiaalsed sisseehitatud protseduurid, nn. meetodid . meetodid "töö" nagu protseduurid, kuid kuulub konkreetsete objektide juurde, nagu omadused. Programmikoodis pääsete meetodile juurde samamoodi nagu atribuudile. kasutades punktimärki.

VB keskkonnas saab luua oma protseduurid, loodud tarkvaraarendaja poolt .

Pange tähele, et iga VB abil kirjutatud projektiprogrammi kood koosneb paljudest protseduuridest, see tähendab, et kogu programmikood asub alamprogrammi protseduuride ja funktsiooniprotseduuride komplektis ning protseduurid ise on klassis (moodulis).

Alamprogrammi protseduurid algavad märksõnaga Sub Lõpeta alam ja funktsiooniprotseduurid algavad märksõnaga Funktsioon ja lõpeb märksõnadega Lõpetamisfunktsioon , mille vahele asetatakse selle protseduuri programmikood. Iga protseduuri programmikood koosneb ühest või mitmest VB programmeerimiskeele lausest.

Sündmuste käsitlemise meetod on terviklik programmikood, mis rakendab eraldi algoritmi. Iga sündmuse jaoks saate programmeerida vastuse, st objekti reaktsiooni selle tulemusena toimunud sündmusele, tehakse teatud toimingute jada - meetod sündmuse töötlemiseks.

Sündmuse protseduuri nimi koosneb kolmest osast (kaasa arvatud allkriips): Objekti nimi_sündmuse nimi.

Seega iga kord, kui kirjutate koodi, mis tuleb sündmusele vastuseks käivitada, loote sündmuse protseduuri, mis kutsutakse automaatselt välja vastava sündmuse toimumisel (näiteks nupule vajutamisel).

Operaator on programmeerimiskeele konstruktsioon, mis määrab ühe või mitu operatsioonid , toodetud üle operandid . Operandid võivad olla konstandid, muutujad, avaldised, funktsioonid jne. Iga operaator on kirjutatud vastavalt programmeerimiskeele süntaktiliste reeglitele. Näiteks määramisoperaatoris märk " = " loeb "assign" ja tähendab, et arvuti mällu kirjutatakse väärtus, mis on võrdne märgist " paremal oleva avaldise väärtusega = " Näiteks joon

Form4.1.Text = "Pildiga vorm" tähendab, et mälus koos nimega Vorm4.1.Tekst väärtus on kirjutatud – tekst "Vorm pildiga", ja rida P=A+B+C kasutatakse programmis avaldise väärtuse hindamiseks ja muutujale määramiseks R .

Projekt- see on arendatav rakendus (rakendusprogrammi kood) - failide kogum, mis salvestab teavet kõigi kohta tarkvara komponendid, kasutatakse see rakendus. Kuna V.B. , ühelt poolt on see objektorienteeritud visuaalne programmeerimissüsteem, kuna see võimaldab programmeerida selles keeles algoritme ja teisest küljest on see süsteem seda tarkvara kujundamise keskkond, siis programmeerimis- ja disainiprotsesside tulemuseks on projekt, mis ühendab programmi koodi ja graafilise liidese. Seetõttu tuleb mis tahes tarkvaraprojekti kettalt põletamiseks või laadimiseks põletada või laadida projekt, mis sisaldab kõiki komponente (faile). Tavaliselt koosneb VB-rakendus paljudest laiendiga failidest, sealhulgas projektifailist .vbproj . Projektifail sisaldab teavet, mis on seotud ühe tarkvaraülesandega – ühe rakendusega.

Projekt on ka koostamise üksus. Projekti koostamise tulemuseks on kokkupanek. Iga projekt sisaldab ühte või mitut nimeruumi. Peal esialgne etapp jaoks projekti loomine antud projekti tüüp ehitatakse automaatselt projekti raamistik , mis koosneb klassidest, mis on raamatukogus sisalduvate klasside pärijad FCL(Framework Class Library) – .NET Frameworki platvormi klassiteegid. Seega, kui arendaja täpsustab, et loob sellise projekti nagu " Windowsi vormide rakendus", siis hõlmab projekti vaikeraamistik objekti Vorm 1– raamatukoguklassi pärija Vorm. Tarkvaraprojekti arendaja lisab loodud vormile juhtelemendid - vastavate klasside objektid, laiendades seeläbi vaikevormi võimalusi.

Iga projekt sisaldab kogu koostu ehitamiseks vajalikku teavet. Projekt sisaldab kõiki klassidega faile, mis on projekti loomise ajal automaatselt ehitatud, ja klassidega faile loodud projekti arendaja. Projekt sisaldab ka installatsioonid ja ressursid tööks vajalik. Osa projektist on ka koostu kirjeldust sisaldav fail (manifest).

Olenevalt valitud tüübist võib projekt olla läbi viidud või teostamatu. Läbiviidud projektid hõlmavad näiteks selliseid projekte nagu Konsooli rakendus või Windowsi vormide rakendus. Kui loote töötava projekti jaoks raamistiku, sisaldab see klassi, mis sisaldab staatilist protseduuri nimega Peamine(). Sellise projekti koostamise tulemusena loob P.E.-fail – laiendiga käivitatav kaasaskantav fail .exe. Sellised P.E.-faili saab käivitada ainult arvutites, kus Framework .Net, sest see on hallatav koodifail.

Mittekäivitatavad projektid hõlmavad näiteks selliseid projekte nagu
Klassi kogu (DLL), millel on laiend. dll, ja on dünaamiliselt lingitud raamatukogu, need. need projektid on mõeldud kaasamiseks (linkimiseks) teistesse projektidesse. Projekti koostamise tulemusena nagu
klassi raamatukogu assambleele fail lisatakse pikendusega .dll. Selliseid projekte (kooste) ei saa otse arvutis teostada. Need on lisatud täitvatele komplektidele, kust kutsutakse välja mittetäitvas projektis asuvate klasside meetodid ( DLL).

Lihtsamate projektide elluviimise etapid– võib jagada mitmeks etapiks:

· graafilise projektiliidese (kasutajaliidese) loomine, mis peaks tagama projekti koostoime kasutajaga projekti käigus;

· graafilise liidese objektide omaduste väärtuste seadmine;

· projektikoodi loomine, redigeerimine ja silumine;

· projekti salvestamine edaspidiseks kasutamiseks;

· projekti elluviimine.

Lahendus on arendamisel olev rakendus, mille failid sisaldavad teavet ühe või mitme, tavaliselt seotud projekti kohta ühine teema. Lahendusfaili kasutatakse mitme omavahel seotud projekti haldamiseks ja sellel on laiend .sln. Veelgi enam, iga VS-s loodud projekt paigutatakse ühte kesta, mida nimetatakse Otsuse järgi.

Kui luuakse uus projekt, saab selle paigutada olemasolevasse Lahendus või saab luua uue Lahendus mis sisaldab projekti.

Niisiis, pöörake uuesti tähelepanu järgmisele:

Klass on objektorienteeritud programmeerimise keskne kontseptsioon. VB projekti arendaja kasutab raamatukogu standardklasse FCL ja loob oma klassid. Lisaks täidab klass kahte erinevat rolli:

· Klass – esiteks on see moodul – arhitektuurne üksus projekti konstrueerimiseks moodulpõhimõttel. Suure projekti keerukusega saab hakkama vaid selle jagamisel mooduliteks – suhteliselt väikesteks üksusteks, mis võimaldavad iseseisvat arendamist ja hilisemat integreerimist suuremasse süsteemi.

· Klass – teiseks on see andmetüüp, st semantiline üksus, mis kirjeldab klassi eksemplarideks nimetatud objektide komplekti omadusi ja käitumist. Süntaktiliselt esindab klass kutsutud andmete kirjeldust klassi väljad, kirjeldus klassi meetodid ja kirjeldus klassi üritused . Andmetüübina käsitletava klassi puhul määravad väljad objektide oleku, meetodid aga objektide käitumise. Sündmused on mõned eriolekud, milles objekt võib olla ja mida saavad hallata klassivälised sündmuste käitlejad. Nii näiteks klassi objekt INIMENE võib toimuda üritus" Sünnipäev"ja iga selle ürituse korraldaja saab sellel puhul oma õnnitlused objektile tuua.

Tavaliselt täidavad klassid mõlemat rolli. Kuid VB-s saate määratleda klasse, mis täidavad ainult mooduli rolli. See moodulid , mille jaoks on võimatu objekte luua.

Kena stiil programmeerimine nõuab, et iga klass oleks salvestatud eraldi fail, mille nimi oleks sama, mis klassi nimi. See on stiilinõue, mida praktikas ei pruugita täita. Oma näidetes püüame seda stiili säilitada.

Klassi defineerides saab projektiarendaja dünaamiliselt luua klassi objekte. Objekti stiilis tööd alustavate programmeerijate tavaline viga on objekti ja klassi mõistete segi ajamine. Peate algusest peale mõistma erinevust. Arendaja loodud objektiklass esindab objektide komplekti staatilist kirjeldust. Objekt on dünaamiline kontseptsioon, see luuakse tarkvarasüsteemi täitmise käigus, on tegelikult arvuti mälus olemas ja projekti lõppedes tavaliselt kaob. Projekti arendaja saab luua kahte-kolme klassi sisaldava tarkvarasüsteemi, kuid sellise süsteemi töötamise käigus võib dünaamiliselt tekkida sadu objekte, mis omavahel kompleksselt suhtlevad.

VS peaaken

Pange tähele, et VS-keskkonnas lihtsa rakenduse loomise protsessi kirjeldatakse üksikasjalikult allpool Teema 4.2, samuti laboritöödel Teema 4.1."Visual Studio .NET integreeritud arenduskeskkond." Nüüd tutvu VS keskkonna liidesega.

Käivitage MS Visual Studio.

Ekraan ilmub avaleht - MS VS ( riis. 4.1.2-1).

Selles aknas on mitu põhipaneeli: Standardmenüü, aken Standardne tööriistariba aken Avaleht Anits A, aken Lahenduste uurija, aken Elementide paneel.

Riis. 4.1.2-1. Koduleht -Microsoft Visual Studio

Tuleb märkida, et VS integreeritud arenduskeskkonnas VB-ga töötades saab kasutada nii standardseid tööriistariba nuppe kui ka ekraani ülaosas asuvaid peamenüü punkte.

VS pakub kasutajale mitmesuguseid tööriistaribasid. Need tööriistaribad sisaldavad nuppe, mille funktsionaalsus sõltub konkreetse tööriistariba funktsionaalsusest.

Aken avaleht võimaldab avada hiljuti kasutatud projekte, otsib näiteid, sisaldab erinevaid linke saitidele, mis aitavad teil VS-iga töötada . Lisaks kuvatakse projektiga töötamise ajal alglehe asemel mitmesuguseid aknaid, näiteks aken Vormi kujundaja, aken Koodiredaktor ja jne.

Aknas Lahenduste uurija failid kuvatakse praegune lahendus(projektid). Seda akent kasutatakse saamiseks detailne info objektide kohta . See võimaldab otsida ja uurida elemente, nende omadusi, meetodeid, projektides asuvaid sündmusi ja linke neile.

Rakenduste arendamise hõlbustamiseks mõeldud tööriistad hõlmavad ka akent Elementide paneel, VB projektides kasutatavate juhtelementide kuvamine .

Uue projekti loomiseks kasutage dialoogiboksi
Loo projekt(joonis 4.1.2-2). Selle avamiseks peate tegema ühte järgmistest:

· täitma käsku Loo projekt põhimenüü elemendist - Fail;

· vajuta nuppu Loo projekt, asub standardsel tööriistaribal.

Riis. 4.1.2-2. Dialoogiaken Loo projekt

VB-s saate luua rakendusi erinevate mallide abil. Selles õpetuses kasutame ainult malli Windowsi vormide rakendus.

See rakendus on mõeldud traditsiooniliste Windowsi rakenduste loomiseks, mille kasutajaliides on loodud MS Windows Formsi abil. Lisaks saate selle malli vormi jaoks määrata teatud omadused ja asetada sellele erinevaid juhtnuppe.

Toome näite projekti loomiseks vajalikest põhitoimingutest Windowsi vormide rakendus.

Näide 4.1.2-1. Loo projekt nimega Näide 4.1.2-1 ja graafiline liides, mis koosneb ühe nupu ja ühe tekstiväljaga vormist. Kui vajutate nuppu, peaks ilmuma "Tere, MTUSI!"

Projekti vorm Näide-4.1.2-1 võib välja näha nagu joonisel fig. 4.1.2-3.

Riis. 4.1.2-3.Projekti graafiline liides (vorm).Näide 4.1.2-1

Projekti elluviimiseks Näide 4.1.2-1 vajalikud on järgmised sammud:

1) Käivitage VS.

2) Looge uus projekt:

Fail ja seejärel käivitage käsk Loo projekt;

· valige projekti mall Windowsi vormide rakendus .

Selle tulemusena avaneb aken Vorm1.vb[konstruktor]Vormi koostaja(nagu on näidatud vastaval vahekaardil), mis võimaldab teil rakendada rakenduse graafilist liidest.

· Valige põhimenüü üksus Fail ja seejärel käivitage käsk Salvesta kõik ;

Selle tulemusena avaneb dialoogiboks Salvesta projekt;

· sisestage väljale Nimi projekti nimi Näide-4.1.2-1(vaikimisi annab VB keskkond sellele nimeks WindowsApplication1) ja seejärel sisestage väljale Asukohakataloogi nimi, kus projekt asub, või kasutage nuppu Ülevaade vajaliku kataloogi otsimiseks (joon. 4.1.2-4);

· klõpsake nuppu Salvesta ;

Selle tulemusena näeb arenduskeskkond välja selline, nagu joonisel fig. 4.1.2-5.

Riis. 4.1.2-5. Arenduskeskkond

Visual Studio paneeli aknad

Paneeli aken avaleht(joonis 4.1.1-1) võimaldab vaadata hiljuti kasutatud projekte, otsida näiteks programme nii spikrist kui ka Internetist ning vaadata ka linke VS-i toote kohta uudiseid sisaldavatele saitidele , dokumentatsioon, õpetused.

Riis. 4.1.4-1.PaneelakenVormi koostaja ja selle kontekstimenüü

VS-i käivitamisel avaneb avaleht automaatselt . Kui aken avaleht ei ilmu, saab seda käsuga välja kutsuda avaleht peamenüü üksus Vaade.

Paneeli aken Vorm1.vb[Konstruktor] (Vormi konstruktor)
Peaaken
on Peamine tööaken , milles teostatakse rakenduse visuaalne kujundamine (joonis 4.1.4-1). Saate selle akna ekraanile kuvada, klõpsates vahekaardil Vorm1.vb[Konstruktor] või topeltklõpsake aknas vormi nimel Lahenduste uurija.

Aknas Vormi kujundaja Kõik rakenduse vormid luuakse visuaalselt arenduskeskkonna tööriistade abil. Ruudustiku abil saate akna vormil objekte täpselt positsioneerida.

Aknas oleva vormi suurust saab muuta kuju valimise käepidemete ja hiire abil. Vormi suuruse muutmiseks tuleb asetada hiirekursor markerile ja kui see muutub kaheotsaliseks nooleks, liigutada see vajalikule suurusele.

Aknaga töötamiseks Vorm1.vb[Konstruktor] saate kasutada kontekstimenüüd (joonis 4.1.4-1).

Riis. 4.1-2. Paneeli akenKoodiredaktornii tema kui ka kontekstimenüü

Paneeli aken Vorm1.vb (Koodiredaktor) on võimas tekstiredaktor suur summa võimalused, mis on programmeerija peamine tööriist programmikoodi loomiseks ja silumiseks. See võib asuda ka Peamine tööaken(Joon.4.1-2) .

Paneeli aken Solution Explorer ja selle kontekstimenüü on näidatud joonisel fig. 4.1.4-3.

Riis. 4.1.4-3. Paneeli akenLahenduste uurija ja selle kontekstimenüü

Paneel Juhtnupud rühmitatud jaotiste kaupa
(Joon. 4.1.4-4). Hüvitiste vormide koostamiseks vajate peamiselt jaotist Standard juhtnupud ( riis. 4.1.4-5).

Paneeli aken Omadused on mõeldud projektiobjektide, sh vormi ja sellesse paigutatud objektide omaduste kuvamiseks ja seadistamiseks. See aken sisaldab näiteks selliseid valitud objekti omadusi nagu asend kujul, kõrgus, laius, värv ja muud (joonis 4.1.4-6).

Dialoogiboksi avamiseks Omadused Peaksite tegema ühte järgmistest.

· peamenüü elemendis Vaade vali meeskond Omaduste aken;

· klõpsake Standardi akna nuppu Atribuudid
tööriistaribad;

· valige meeskond Omadused kontekstimenüü valitud objekt;

· vajutage klaviatuuriklahvi .

Riis. 4.1.4-4. Elements paneeli aken 4.1.4-5. Paneel

jaotiste kaupa rühmitatud juhtelemendid (standardelemendid)

Riis. 4.1.4-6. Paneeli akenOmadused

Kuna vorm ja juhtelemendid on mõlemad objektid, muutuvad selle akna omaduste komplekt sõltuvalt valitud objektist. Nuppude kasutamine IN tähestikuline järjekord Ja
Kategooria järgi objekti omadusi saab vaadata vastavalt tähestikulises järjekorras või rühmade (kategooriate) kaupa.

Akna allosas kuvatakse tööriistavihje, mis selgitab valitud objekti omaduse eesmärki. Täpsema selgituse leiab abisüsteemist. Dünaamilisele spikrile pääsete juurde ka valides vajalik jaotis aknas Dünaamiline abi.

Dialoogiboksi kasutamine Omadused, Saate muuta objektide vaikeomadusi. Mõningaid objekti omadusi, näiteks mõõtmeid ja asukohta, saab määrata objekti liigutamisega ja selle mõõtmete muutmisega vormikujundajas hiirega. Atribuutide aknas seatud atribuute saab rakenduse töötamise ajal muuta, kirjutades vastavad koodid koodiredaktoriga loodud protseduuridesse.

Tavaliselt sisaldab vorm palju objekte. Kui valite mitu objekti korraga, siis omaduste aknas näete nende objektide ühiseid omadusi.

4.1.5. Integreeritud sätete seadistamine
arenduskeskkond

VS arenduskeskkonna tööriistaaknad, abisüsteem, kompilaatori parameetrid on lihtsalt ja väga paindlikult seadistatavad.

Järgmised sammud näitavad, kuidas muuta VB-s arenduskeskkonna sätteid vastavalt praktilise töö jaoks soovitatule:

1) Peamenüü üksuses Teenindus täitma käsku Seadete importimine ja eksportimine. Ilmuva viisardi abil saate salvestada oma keskkonnasätted teises arvutis kasutamiseks, laadida sätteid teisest arvutist või lähtestada sätted – see valik, mille peate kohe valima.

2) Vali Lähtestage kõik seaded ja seejärel klõpsake nuppu Edasi. VS küsib enne seadistamist, kas peate praegused sätted faili salvestama. Peaksite alati hoidma oma praegustest sätetest varukoopiat, et saaksite nende juurde naasta, kui uued seaded "ebamugavaks" osutuvad.

3) Kontrollige, kas valik on valitud Jah ja pöörake tähelepanu faili ja kausta nimele, kuhu VS need sätted salvestab.

4) Kui teil on vaja nende sätete juurde naasta, kasutage nende taastamiseks sama viisardit ja valikut Import valitud keskkonna seaded.

5) VS-i jaoks kasutatavate vaikeseadete loendi vaatamiseks klõpsake nuppu Edasi.

6) Kliki VB arendamise võimalused ja seejärel klõpsake nuppu Valmis.

7) Viisard vahetab IDE suvandeid, sealhulgas menüükäske, tööriistaribasid ja sätteid mõne dialoogiboksi ja akende jaoks Tööriistad Ja Koodiredaktor.

8) Saate seda häälestusprotsessi korrata igal ajal, kui peate oma praegused seaded lähtestama (näiteks kui tegite seadetes vea) või kui soovite konfigureerida VS-i kasutama mõnda muud programmeerimistööriista.

9) Nõustaja sulgemiseks klõpsake nuppu Sulge.

Kui VB-ga töötamise keskkonnasätted on konfigureeritud, saate ülesandeid täita. Kuid kui neid on muudetud, peate järgima neid samme, et kontrollida, kas projektide ja VB kompilaatoriga seotud seadistused vastavad praktilises töös kasutatavatele. Projekti ja kompilaatori sätete kontrollimiseks tehke järgmist.

1) Klõpsake käsul Valikud menüüelement Teenindus ja avage dialoogiboks Valikud.

2) Dialoogiaken Valikud– See on aken, kus asuvad paljud VS-i konfiguratsioonisuvandid. Kõigi muudetavate parameetrite nägemiseks peate klõpsama märkeruudul Kuva kõik valikud asub dialoogiboksi alumises vasakus nurgas.

3) Dialoogiboksis Valikud klõpsake kategoorial Projektid ja lahendused ja siis sektsioonile On levinud. See märkeruutude ja suvandite rühm konfigureerib VS-projektide ja -lahenduste sätteid. Et tagada tarkvara vastavus selles õpetuses kasutatud sätetele, peate konfigureerima ja


09. juuli 2003

Erinevate visuaalsete rakenduste arendustööriistade tulekuga on programmide graafiliste liideste kirjutamisest saanud midagi lapsemängu sarnast. Torkasin seda hiirega ja ilmus vorm, torkasin teist korda ja ilmus nupp. Mulle tundub, et paljud inimesed ei mõtle praegu muule programmeerimisviisile graafiline keskkond. Muidugi ei saa suurte projektide kirjutamisel edenemisele vastu vaielda, kõik need mugavused tulevad väga kasuks. Kuid see vestlus ei seisne selles. Mõnikord jõuab see absurdini: primitiivne rakendus on kirjutatud MFC, VCL jne abil. Sellised programmid neelavad mälu nagu termiidid ja võtavad oma rasvade kehadega tarbetult ruumi. kettaruum. MFC/VCL analoogid “kaaluvad” reeglina kümme kuni kakskümmend korda rohkem kui puhtal API-le kirjutatud programmid. Ja Visual Basic (andku jumal mulle selle fraasi andeks) koos failiga msvbvmXX.dll? Ja süsteemiressursse kulub palju rohkem (mitu korda). Vaesed kasutajad, kes keelavad endale õlut, säästavad raha uue riistvara ostmiseks. Kas vaestest pole kahju? Mitte ainult programmeerijad ei joo õlut? API kodeerimisel on veel üks positiivne asi: programmeerija muutub operatsioonisüsteemile lähemale. Sellest tulenevalt mõistab ja kontrollib ta seda paremini. Ja see on lihtne – see on väga põnev tegevus. Kordan, kõik ülaltoodu kehtib konkreetselt väikeste lihtsate programmide kohta suurtes projektides on kõik täiesti erinev.

Loodan, et veensin teid. Mine.

Vaatleme minimaalse funktsionaalsusega lihtsa aknaliidese loomist. See on lihtne aken kahe sisestusvälja ja kahe nupuga. Kui klõpsate nupul "Kopeeri", kopeeritakse tekst esimeselt sisestusväljalt teisele. Kui klõpsate nupul "Sule", lõpetab programm oma töö. Tulevikus võib see olla mallina muude keerukamate rakenduste kirjutamisel. Suhtleme C/C++ keeles, kuigi me ei solva ka Delphit. Üldine põhimõte sama, ainult süntaks on erinev. Süsteemisõnumite ja API funktsioonidega töötamiseks peate oma projekti kaasama päisefailid; C/C++ puhul on see windows.h, Delphis on need aknad ja sõnumite moodulid.

Iga Windows OS-i programm koosneb kolmest põhiosast: põhifunktsioon, sõnumitsükkel ja aknafunktsioon, mis töötleb kõiki aknale saadetud sõnumeid.

Meie programm alustab täitmist funktsiooniga WinMain(). Seda see on põhifunktsioon. Funktsioon WinMain() täidab tavaliselt järgmisi ülesandeid:

  • Määrab akna klassi. Mitte segi ajada OOP-klassiga.
  • Registrid see klass süsteemis.
  • Loob rakenduse peaakna ja muud juhtelemendid.
  • Kuvab ekraanil akna.
  • Käivitab sõnumitöötlustsükli.
  • See deklareeritakse järgmiselt: int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) Vaatame parameetreid:
    • hInstance on praeguse rakenduse eksemplari käepide.
    • hPrevInstance on rakenduse eelmise eksemplari käepide, kui see töötab.
    • lpCmdLine – kursor reale, mis sisaldab programmi käivitamisel edastatud parameetreid.
    • nCmdShow – konstant, mis määrab, kuidas akent kuvatakse. (Vt SW_ konstandid).

Delphis me sellist pilti ei näe selles arenduskeskkonnas, et põhifunktsioon on kompilaatori poolt programmeerija eest varjatud. Kuigi loomulikult on see lõplikus koodis olemas. Aknaklassi registreerimiseks tuleb täita WNDCLASS tüüpi struktuuri väljad (Delphis TWNDCLASS). Selleks oleme deklareerinud muutuja wcl. wcl.hInstance = hInstance; Praeguse rakenduse eksemplari käepide, muutuja hInstance lähtestab funktsioon WinMain(). Delphis initsialiseeritakse see kaudselt. wcl.lpszClassName = szWinName; Klassi nimi. Lõime ja initsialiseerisime stringi muutuja szWinName eelnevalt. wcl.lpfnWndProc = WindowFunc; Osuti akna funktsioonile. wcl.style = 0; Konstant, mis määrab akna stiili. Selleks kasutatakse lippe CS_, ma lihtsalt kustutasin need nullini. Saate määrata lippude kombinatsiooni bitipõhise toimingu "või" abil. wcl.hIcon = LoadIcon(NULL, IDI_ASTERISK); Rakenduse ikooni käepide, mille tagastab funktsioon LoadIcon(). Olen üles laadinud standardne ikoon. Vt IDI_ konstandid. wcl.hCursor = Laadi Kursor(NULL,IDC_ARROW); Rakenduse kursori käepide, mille tagastas LoadCursor(). Laadisin standardnoole. Vt IDC_ konstandid. wcl.lpszMenuName = NULL; Osutage stringile, mis määrab selle aknaklassi menüüressursi nime. Pole menüüd, pole märki. wcl.cbClsExtra = 0; Reserveeritud väli. Lähtestame. wcl.cbWndExtra = 0; Reserveeritud väli. Lähtestame. wcl.hbrBackground = (HBRUSH)VÄRVI_AKEN; Akna värv. COLOR_WINDOW konstant kantakse tüübile HBRUSH (Delphis pole vaja üle kanda). Funktsiooni GetStockObject() abil saate määrata ka aknapintsli värvi või taustapildi. Nüüd registreerige julgelt aknaklass.

RegisterClass(&wcl); Osuti wcl-struktuurile edastatakse parameetrina funktsioonile RegisterClass.

Järgmisel real loome oma akna.

hMainWnd = LooAken(szWinName, "Lihtne aken API-s.", WS_OVERLAPPEDWINDOW ^ WS_THICKFRAME ^ S_MAXIMIZEBOX, CW_USEDEFAULT, CW_USEDEFAULT, 300, 170, HWND_DESKTOP, NULL, hInstance, NULL);
  • Esimene parameeter on akna klassi nimi.
  • Teine parameeter on akna pealkiri.
  • Kolmas parameeter on akna stiil. Standardist WS_OVERLAPPEDWINDOW, kasutades xor operatsioonid, eemaldasin akna skaleerimise võimaluse ja keelasin maksimeerimisnupu.
  • Neljas ja viies on akna asukoht vasakult, ülemine nurk ekraan. Mul on CW_USEDEFAULT, selle väärtusega valib süsteem akna asukoha automaatselt.
  • Kuues ja seitsmes parameeter on vastavalt akna laius ja kõrgus.
  • Kaheksas parameeter on omaniku aken. Peaaknas on omanik töölaud (0). Juhtnuppudel on peaaken.
  • Üheksas on osuti menüükäepidemele. Pole menüüd, pole märki.
  • Kümnes parameeter on praeguse rakenduse eksemplari käepide.
  • Üheteistkümnes – kasutatakse MDI-liidesega rakenduste loomisel. Meil pole vaja.
Funktsioon tagastab loodud aknale käepideme, mis salvestatakse muutujasse hMainWnd.
Akna käepide - unikaalne number süsteemis, mille abil aken või juhtseade tuvastatakse.

Järgmisena loome vajalikud elemendid juhtimine. Kõik juhtelemendid on samad aknad, neil on lihtsalt erinev klassi nimi. Kontrollklasse pole vaja registreerida, need on juba süsteemis ette määratud. Nupp - nuppude klass. Sisestusväli – klassi redigeerimine. Pealkiri – klass ststic. On palju klasse, mis sobivad standardsed elemendid juhtimine. Loome juhtelemente, kasutades tuttavat funktsiooni CreateWindow() ja võõrast CreateWindowEx() funktsiooni. CreateWindowEx() võimaldab teil luua täpsema stiiliga akna. Kasutame seda sisestusväljade loomiseks. See funktsioon on lisanud esimese parameetri, mis määrab selle kõige täpsema stiili, ülejäänud parameetrid on samad, mis CreateWindow(). Juhtelemendid on lapse aknad, nende omanik on peaaken.

Juhtelementide loomisel tuleb funktsiooni parameetrites määrata peaakna deskriptor ja ka akna stiil WS_CHILD. Välimus ja juhtnuppude funktsionaalsust saab manipuleerida lippude WS_, ES_, BS_, SS_ abil, kombineerides neid bitipõhise "või" operatsiooniga. Juhtelementide loomisel initsialiseerime vastavad muutujad nende deskriptoritega, mille funktsioonid CreateWindow() ja CreateWindowEx() tagastavad. Meil on neid kirjeldusi vaja edasine töö koos juhtnuppudega. Kuvame loodud akna ekraanile ja joonistame ümber.

Funktsioon GetMessage valib rakenduse sõnumijärjekorrast järgmise sõnumi ja saadab selle aknasse.
  • Esimene parameeter on MSG tüüpi struktuur (in Delphi tüüpi TMSG)
  • Teine parameeter on selle akna käepide, millele sõnum on mõeldud. Kui NULL või 0, siis kõik rakenduste aknad.
  • Kolmas ja neljas - võimaldavad teil määrata vastuvõetud sõnumite vahemiku. Kui 0, siis kõik aknale adresseeritud sõnumid.
GetMessage – tagastab FALSE, kui ilmub teade WM_QUIT, sel juhul tsüklist väljutakse ja rakendus väljub. TranslateMessage – tõlgib virtuaalse klahvi koodid klaviatuuri sõnumiteks. DispatchMessage – saadab töötlemiseks akna funktsioonile teate.

Aknafunktsioon pakub programmi funktsionaalsust töötlemise teel süsteemi teated. Akna funktsioon on TAGASIKUTE funktsioon, st. mida operatsioonisüsteem kutsub vastusena sissetulevale uuele sõnumile. Akna funktsioon deklareeritakse järgmiselt:

LRESULT TAGASIHELISTAMISE WindowFunc (HWND hMainWnd, UINT iMsg, WPARAM wParam, LPARAM lParam)

  • HMainWnd – peaakna käepide.
  • iMsg - sõnumi number. Vt WM_ konstandid.
  • lParam ja wParam on sõnumi parameetrid.

Kui ilmub teade, saame võrrelda iMsg parameetrit ühe WM_ konstandiga ja programmeerida programmi vastavalt reageerima.

Näiteks: kui hiire vasakut nuppu vajutatakse, kui hiirekursor on akna kliendiala kohal, tõstetakse sündmus WM_LBUTTONDOWN. Kutsutakse välja aknafunktsioon, WM_LBUTTONDOWN konstandi väärtus sisestatakse iMsg parameetrisse, saame kontrollida seisukorda ja programmeerida meile vajaliku programmi reaktsiooni.

Aknafunktsiooni sees on valikuoperaator, mis täidab ülalkirjeldatud ülesande. Valikuoperaatoril peab olema vaikimisi käitleja, mille realiseerib funktsioon DefWindowProc(hMainWnd, iMsg, wParam, lParam);

Kui seda ei tehta, sureb meie programm ilma taastumata. Paljusid sõnumeid töötleb süsteem ise, näiteks: akna suuruse muutmine, akna minimeerimine/maksimeerimine, süsteemimenüü kutsumine jne. Selleks on DefWindowProc().

Akna juhtelementidega töötamisel saadetakse akna omanikule teade WM_COMMAND, kus lParam sisaldab juhtelemendi käepidet ja parameetri wParam kõrgem bait on juhtelemendil esile tõstetud sündmuse identifikaator. Näiteks: kui klõpsate nupul - BN_CLICKED. Vaata konstante BN_, WM_. Programmi saame sulgeda funktsiooni PostQuitMessage(0) abil. See funktsioon saadab aknale WM_QUIT-teate.

Paar sõna selle kohta, kuidas selliseid programme Delphis kirjutada. Looge uus projekt, käivitage projektihaldur, kustutage üksus1 koos vormiga. Vajutage Ctrl + F12 ja avage projektifail. Eemaldame kasutusaladest vormide mooduli ning lisame sinna aknad ja sõnumid. Kustutame kõik alguse ja lõpu vahel. Töödeldav detail on valmis. Saate kodeerida. Programme on võimatu kirjutada puhta API abil ilma abita, mis peaks alati käepärast olema. Kui sa oleksid Gates ise, ei mäletaks sa kõike. Ma soovitan:

  • esiteks - MSDN;
  • Delphi abisüsteem (MSTOOLS.HLP fail);
  • Veebisaidil http://www.soobcha.ru/rushelp on Win32 API kohta venekeelne abi.
See on kõik.
Edu.

Bobatšenko Maxim Lae alla: CreateWnd.zip(2,6K)
arhiiv sisaldab faile windows.cpp ja windows.dpr

Traditsiooniline graafiline lähenemine kasutajaliidesele on seotud Sutherlandi, Newmani jt töödega, milles interaktsioon põhineb regenereerimisega graafilise kuva ja valguspliiatsi kasutamisel. Graafilise dialoogi edasist arengut seostatakse edusammudega interaktiivsete arvutigraafika süsteemide vallas, mis tõi kaasa regulatsiooni rahvusvaheliste standardite näol.
GKS on esimene rahvusvaheline graafikastandard. See salvestas esmakordselt mõisted "tööjaamad" ja loogilised seadmed sisend (klaviatuur, valik, lokaator, hindaja, osuti, koordinaatide jada sisend). Kahjuks eostatud paradigma ülimuslikkuse ajal vektorjoonistus. Siit ka dialoogitoe nõrkus: võimetus sisestada uusi seadmeid või muuta seadme pilti ekraanil isegi rakendusprogrammist (graafikapaketi kasutaja), mis toob kaasa vajaduse kasutada dialoogi korraldamisel peamiselt sümboolset sisendit. . Dialoogi rakendamine GKS-is on rakendusprogrammi eesõigus, ei ole võimalik.
Graafika teine ​​suund - rastergraafika avaldas äärmiselt suurt mõju kogu järgnevale interaktiivsete süsteemide arendamisele. Kõik tänapäevaste tööjaamade kasutajaliidese põhifunktsioonid on tuletatud töödest Xerox PARC: aknahaldus

  • kasutamine graafilised sümbolid("ikoonid") objektide tähistamiseks
  • interaktsiooni stiil, mida nimetatakse otseseks manipuleerimiseks
  • hiire populaarsus ekraani positsioneerimisseadmena
  • objektorienteeritud programmeerimisstiil.
Sellest ajast alates on kasutajaliideste loomise ja haldamise tööriistade klassifitseerimise süsteemi käsitletud kolmel tasandil:
  1. aknahaldussüsteemid (WMS - Window Manager System);
  2. spetsiaalsed tööriistad;
    • tavaline (MacIntosh, SunView...)
    • objektorienteeritud (Smalltalk-80, Andrew, InterView)
  3. kasutajaliidese haldussüsteemid.
Järgmised jaotised annavad lühikesed omadused, kõigi nende tasemete olek ja funktsionaalne kirjeldus.

Aknahaldussüsteemid (WMS)

Mitme akna tehnoloogia annab kasutajale juurdepääsu rohkemale teabele, kui on võimalik ühe ekraaniga. Windows pakub juurdepääsu mitmele teabeallikale. Kasutaja saab kombineerida mitmest allikast pärinevat teavet, uurida teavet selle kohta erinevad tasemed detailides. Mitmeprogrammilises režiimis on võimalik juhtida mitut paralleelsed ülesanded. Iga ülesande sisend ja väljund kuvatakse erinevates akendes, võimaldades kasutajal keskenduda igale ülesandele vastavalt vajadusele.
WMS, aknapõhiste haldusressursside töökeskkond, toetab:

  • kattuvad aknad (ekraani ristkülikukujulised alad);
  • mitmesugused sisendseadmed (digitaalsed ja analoogsed);
  • kursorid;
  • fonte.
Operaatori ja rakendusprogrammi poolne liides sisaldab käske akende loomiseks/hävitamiseks, nende suuruse ja asukoha muutmiseks, üles tõstmiseks, akna ikooniks kokkusurumiseks ja taastamiseks. Sisaldab graafilist väljundteeki (ainult põhiprimitiivid) ja sündmuste töötlejat. Seega on kasutajaliidese juurutamiseks mõned mehhanismid.
WMS-i rakendusi on kahte tüüpi: põhisüsteem(Kernel System), mis töötab ühes masinas ja võrk (võrgule orienteeritud), rakendatakse klient-serveri mudelil.

Kasutajaliidese loomise tööriistakomplekt