You are on page 1of 2

MICROSOFT VISUAL STUDIO 2005 INSIDER

Microsoft Visual Studio 2005

Standardni elementi Windows aplikacija (3)


Kako im jednostavnije izraivati izbornike, alatne i statusne trake, drugi dio
pie: Nenad Crnko

prethodni nastavci u PDF-u

NA VIDI DVD-u

roli put smo malo skrenuli s glavne teme serijala, jer smo se umjesto uvoda u programiranje u Visual Basicu, bavili promjenama koje u razvoj softvera u nadolazeim godinama donose razlike u internoj strukturi novog Microsoftovog operativnog sustava Windows Vista. Zato se sada ponovo vraamo na projekt iji razvoj pratimo kroz nekoliko nastavaka. Zadnje to smo napravili na projektu bilo je dodavanje kontrola za stvaranje standardnih izbornika i izbornika ovisnih o kontekstu, odnosno kontrola za koritenje alatnih i statusnih traka na glavnu formu. Objasnili smo i nain stvaranja obje vrste izbornika u razvojnoj okolini, a sada nastavljamo sa pripremom alatnih i statusnih traka. Prvo emo se pozabaviti oblikovanjem suelja pomou razvojne okoline, da bi na kraju nastavka pokazali alternativni nain za izvoenje istog postupka - koritenje programskog kda. Slino kao i kod pripreme izbornika prvo treba oznaiti eljenu kontrolu. Za stvaranje alatne trake to je ToolStrip1, a za stvaranje statusne trake StatusStrip1. Naravno, u konkretnom sluaju nazivi kontrola mogu biti drugaiji, ali u ovom projektu nismo mijenjali poetne nazive predloene od strane razvojne okoline. Nakon odabira odgovarajue kontrole u donjem dijelu forme, na njezinoj grafikoj reprezentaciji na formi pojavljuje se padajui popis za odabir neke od jednostavnijih kontrola, ije se koritenje planira u aplikaciji (vidi pratee slike uz tekst). U sluaju alatne trake odabir je neto vei nego kod statusne trake, to je u potpunosti razumljivo. Alatna traka se moe koristiti za prikaz informacija o djelovanju programa, te jo bitnije odabir najeih opcija programa na razliite naine. Statusna traka, kao to joj govori i naziv, prije

svega je namijenjena za prikaz statusnih informacija, pa je logino da je Dodavanje osnovnih kontrola na statusnu traku: Popis dostupnih kontrola je neto manji nego u sluaju izbor osnovnih alatne trake. kontrola ipak neto If .DozvoliKori tenje = False _ Then End manje raskoan. End With Veliki dio svojstava za odreivanje izgleda osnovnih DodajGrafickeElemente() kontrola na alatnim i statusnim trakama slian je (ili End Sub Private Sub DodajGrafickeElemente() identian) onima kod pripreme izbornika, pa vas zbog MenuStrip1.Items.Add("Izbornik") izbjegavanja ponavljanja upuujemo na odgovarajui Dim newmnu As New _ tekst u pretprolom broju. Na ovom mjestu pozabaviti ToolStripMenuItem With newmnu emo se samo jednom sitnicom , jer se njoj nismo .Text = "Podizbornik 1" previe bavili kod pripreme izbornika, a izvodi se iden.Checked = False tino u oba sluaja. Kad se izgled kontrole namjerava .Enabled = True End With uljepati dodavanjem odgovarajueg grafikog sadraDirectCast(Me.MenuStrip1.Items(2), ja (slike), onda treba donijeti odluku o tome hoe li ToolStripMenuItem).DropDownItems.Add _ grafiki sadraj biti ukljuen u lokalne resurse same (newmnu) forme (Local resource),ili u resurse na razini cijelog proDim newmnu2 As New _ ToolStripMenuItem jekta (Project resource file). Kao i obino, i jedno i drugo With newmnu2 rjeenje ima svoje prednosti i mane. Koritenje .Text = "Podizbornik2 2" grafikih sadraja u obliku resursa na razini projek.Checked = True .Enabled = False ta smanjuje ukupnu veliinu projekta, jer se isti End With resurs moe koristiti nekoliko (desetaka) puta na DirectCast(MenuStrip1.Items(2), _ razliitim formama. Problem nastaje kad se forma ToolStripMenuItem).DropDownItems.Add _ (newmnu) pripremljena za koritenje globalnih resursa namDirectCast(MenuStrip1.Items(2), _ jerava dodati nekom drugom projektu bez takvih ToolStripMenuItem).DropDownItems.Add _ resursa. Zato bi za forme ije se koritenje planira u (newmnu2) ContextMenuStrip1.Items.Add _ veem broju razliitih projekata moda bilo pamet("Test menu") nije koristiti lokalne resurse. ToolStrip1.Items.Add _ Sreom postoji i trei pristup, ali je neto sloeni("Test button") ji za programera poetnika - a to je priprema izgleStatusStrip1.Items.Add _ ("Test panel") da i sadraja kontrola tijekom izvoenja programa End Sub pomou programskog koda. Najavom takve Private Sub _ mogunosti dolazimo dolazimo do malo veeg OpenToolStripMenuItem_Click(ByVal _ sender As System.Object, ByVal e As _ dijela programskog koda, koji prati ovaj tekst.
Public Class Glavna Private Sub Glavna_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim fsplash As New SplashScreen1 With fsplash .Show() .Refresh() System.Threading.Thread.Sleep(3000) .Close() .Dispose() End With Dim flogin As New LoginForm1 With flogin .ShowDialog() System.EventArgs) Handles _ OpenToolStripMenuItem.Click, _ OpenToolStripMenuItem1.Click, _ ToolStripButton1.Click MsgBox _ ("Izabrali ste opciju izbornika Open") End Sub Private Sub _ SaveToolStripMenuItem_Click(ByVal _ sender As System.Object, ByVal e As _ System.EventArgs) Handles _ SaveToolStripMenuItem.Click MsgBox _ ("Izabrali ste opciju izbornika Save") End Sub End Class

Dodavanje jednostavnijiih kontrola na alatnu traku: Popis kontrola je prilino velik, ali kod poslovnog softvera ne
bi trebalo pretjerivati sa arenilom.

WWW.VIDILAB.COM

VIDI br. 134 / 2007

131

INSIDER MICROSOFT VISUAL STUDIO 2005

uvanje grafikih resursa u projektu: Ovisi o tome je li rije o lokalnim resursima ili resursima na razini projekta.

Zavrni izgled osnovnog izbornika:


a djelomino programskim kodom.

Izbornik je djelomino nastao pripremom u razvojnoj okolini,

Prethodni dio programskog koda demonstrira dvije razliite stvari. Jedna je dinamiko dodavanje dijelova sloenih kontrola tijekom izvoenja programskog kda (za to je zaduena procedura DodajGrafikeElemente), a druga je odgovor postojeih kontrola na postupke korisnika nakon pokretanja programa. Krenimo redom. Procedura DodajGrafikeElemente poziva se na samom poetku ivotnog vijeka forme, dok forma jo nije prikazana na zaslonu (dogaaj Load). U njoj se svakoj od sloenih kontrola postavljenih na formu dodaje novi element, s tim da je kod osnovnog izbornika prikazano dodavanje vie razina izbornika (glavnog izbornika i podizbornika). U konkretnom sluaju to znai da su sve sloene kontrole djelomino stvorene "crtanjem" u razvojnoj okolini, a djelomino programskim kdom. Mogui su i mnogo "ii" sluajevi - da cijelo suelje bude pripremljeno "crtanjem" pomou prozora razvojene okoline (pogodnije za poetnika) ili da se koristi iskljuivo programski kd (to svakako zahtijeva odreeno iskustvo u programiranju). Druga neizostavna stvar svakog suelja je njegova reakcija na dogaaje nastale tijekom izvoenja programa. U velikoj veini sluajeva je to obian pritisak miem (ili klik) na kontrolu, iako u multimedijalno ili igraki orijentiranom softveru moete koristiti brojne druge dogaaje pridruene kontrolama. Ono to svakako treba istaknuti ovom prilikom je optimizacija programskog kda na sloenom korisnikom suelju u svrhu izbjegavanja ponavljanja. to to konkretno znai? I u ovom krajnje jednostavnom primjeru programa korisniku treba omoguiti da izabere istu opciju programa na razliite naine. Sasvim konkretno - naredba Open treba biti dostupna iz osnovnog izbornika, iz kontekstnog izbornika te pomou odgovarajueg gumba na alatnoj traci. Potpuno bi neracionalno bilo pisati tri procedure s identinim programskim kdom. Prva ideja za optimizaciju navedene situacije je izdvajanje istog dijela programskog kda u posebnu proceduru, te njezino naknadno pozivanje

iz tri razliite procedure koje predstavljaju odgovor na pritisak miem na odgovarajuu kontrolu sueDodavanje osnovnih kontrola na statusnu traku: Popis dostupnih kontrola je neto manji nego u lja. Sreom possluaju alatne trake. toji jo jednostavnije i elegantnije rjeenje. Pomou programske pojavljuje, ali i djeluje na formi tijekom izvoenja konstrukcije u stilu: programa pripremljeno je dinamiki, a da bi itava stvar bila jo zanimljivija, sve potrebne informacije Handles OpenToolStripMenuItem.Click, o dinamiki dodanim elementima mogu se uvati u OpenToolStripMenuItem1.Click, SQL Server bazi podataka. Drugim rijeima, u proToolStripButton1.Click jektu kojeg spominjem na ovom mjestu, veliki dio Mogue je istu proceduru "podmentuti" kao izrade aplikacije svodio se na popunjavanje odgoodgovor na isti dogaaj za tri razliite kontrole. varajuih tablica u bazi podataka oekivanim paraKakva uteda vremena! Naoruani novosteenim metrima, umjesto pisanja programskog kda. Ako znanjem iz ovog te iz pretprolog nastavka serijala vas zanima neto slino, ne propustite slijedei nasupuujemo vas na vlastito eksperimentiranje tavak naeg Insidera. nauenim. Navedimo na kraju neto to nismo Visual Studio '05 serijal stigli spomenuti u prethodnom dijelu teksta. Vjerojatno ste se i sami primjetili kako Orijentiran na web - Vidi 116 neto nedostaje. A to je hvatanje dogaaja Udobno pisanje programskoga kda - Vidi 117 za elemente forme koji su dinamiki dodani Programiranje u besplatnim alatima - Vidi 118 na formu tijekom izvoenja programa. Varijable, polja i jo poneto - Vidi 119 Budui da takvi elementi ne postoje tijekom Kontrolne strukture - Vidi 120 grafikog oblikovanja forme, ne moemo Obrada pogreaka - Vidi 121 im pridruiti niti procedure za reakciju na Obrada pogreaka, dio drugi... - Vidi 122 dogaaje. Rjeenje, naravno, postoji, ali e o Procedure i funkcije - Vidi 123 njemu biti neto vie rijei slijedei put kada Uvod u objektno programiranje - Vidi 124 se probijete i udomaite sa osnovnim Uvod u objektno programiranje II - Vidi 125/126 oblicima koritenja sloenijih kontrola za Uvod u izradu Windows aplikacija - Vidi 127 oblikovanje korisnikog suelja. Za sada Uvod u izradu Windows aplikacija II - Vidi 128 samo navedimo to je zapravo mogue Uvod u izradu Windows aplikacija III - Vidi 129 postii koritenjem takvih, neto napredniUvod u izradu Windows aplikacija IV - Vidi 130 jih naprednijih tehnika. Autor teksta je ve Standardni elementi Windows aplikacija I - Vidi 131 imao priliku razvijati sasvim ozbiljne Standardni elementi Windows aplikacija II - Vidi 132 dijelove programskog suelja, gdje cijelo A programiranje za novi OS? - Vidi 133 suelje u smislu njegovog grafikog sadraja predstavlja prazna forma. Sve ostalo to se
WWW.VIDI.HR

132

VIDI br. 134 / 2007

You might also like