lektion 1 PROGRAMMERING A VB 2008 EXPRESS UTVECKLINGSVERKTYGET VISUAL BASIC VB är ett applikationsutvecklingsverktyg med programmeringsspråket är basic, gränssnittet är grafiskt och man arbetar hela tiden med grafiska objekt. Med det menas att man startar med en form (ett tomt blad) och placerar ut objekt på det (objekt kan vara knappar, textrutor, listor, bilder m.m.). Sedan tilldelar man händelser och egenskaper (t.ex storlek/färg/font) till objekten. Skapa katalogen VB i din proga mapp, på din nätverkskatalog. Starta VB08, new project, windows forms application, namnge det valutaräknare. Spara allt med en gång på det ställe du vill t.ex H:\progA\vb_express Det bör nu se ut ungefär så här. FORM KOMPONENTER EGENSKAPS FÖNSTER VBE_lektion1_progA.doc sida 1
Uppgift 1. Ditt första projekt blir att lägga ut kommandoknapp, textrutor och etiketter, du drar komponenter ifrån paletten. Ditt program ska fungera så att du matar in två tal i varsin textruta, när du sedan trycker på knappen ska talen multipliceras och presenteras i den tredje textrutan. Nu kan vi provköra vårt program med F5. Inget händer annat än att vår form visas upp, vi har ännu inte talat om för programmet vad som ska ske. Dubbelklicka på kommandoknappen och du kommer in i kodfönstret för default händelsen click, skriv in koden. Private Sub Command1_Click() textbox3.text = textbox1.text * textbox2.text End Sub De här raderna är proceduren som ska köras vid varje klick på knappen När du klickar på knappen ska talen i text1 och text2 multipliceras och visas i textbox3 Bygg ut med tre knappar för de övriga räknesätten. Lägg till en knapp för att rensa alla rutor ( textbox1.text = ). Vill du kommentera i koden använder du en enkel. Det som skrivs efter ett kommentartecken blir grönt och ses av programmet som kommentarer. Ett problem kommer att uppstå, du måste förstå skillnaden mellan en sträng och ett tal (strängar går ej att räkna med, jag visar på kanonen ). Ett tal kan se ut så här 12 675 34 67,8-5,00 (decimal komma) och går bra att räkna med. En sträng kan se ut så här vanlig text 12 34 6,78 6.87 alltså det som ser ut som tal behöver ej vara tal utan kan vara strängar, strängar går normalt inte att VBE_lektion1_progA.doc sida 2
räknas med utan att konverteras till tal. Ibland hjälper VB till och konverterar automatiskt. CDbl(textbox1.text) tvingar innehållet i textbox1.text till tal. CDbl change to double (ändra till decimaltal). Uppgift 2. Skapa ett nytt projekt i en ny mapp. Vi ska nu göra ett program, som omvandlar svensk valuta till engelska pund. Vi lägger ut en fet rubrik VALUTA VÄXLARE Börja med att klicka på label och lägg ut i formen, label betyder etikett, vi använder den som rubrik i vårt program. Se till att label är markerad. Nu går vi till egenskapsfönstret och väljer teckensnitt, färg, text på label1. SPARA DITT ARBETE OFTA, TA BACKUP PÅ HELA PROJEKTMAPPEN Lägg nu in fyra textrutor och fyra etiketter Lägg in en bild också, backgroundpicture, wmf-filer kan med fördel användas. Prova och sätt egenskapen backgroundimagelayout till stretch. Kanske ser det ut så här. Det här var kosmetika, nu är det dags att se till att programmet gör någonting. Kolumnen kurs är tänkt till att skriva in t.ex. 100 sek och vad man får i engelsk valuta för dessa pengar (man kan tänka sig andra modeller). I antal ska du skriva in den tänkta mängden och programmet ska presentera vad du får i rutan under. VBE_lektion1_progA.doc sida 3
Dubbelklicka nu i textrutan under antal (t.ex. textboxoch kodfönstret kommer upp, programmet tror nu att du vill skriva in kod för händelsen change, vilket är precis vad du vill. Alltså så fort du gör ändringar i textrutan (ändrar krontal) så ska ny summa presenteras i rutan under. Kod: Private Sub TextBox3_TextChanged() TextBox4.Text = TextBox3.Text / TextBox1.Text * TextBox2.Text End Sub Det koden gör är att den tilldelar texten i ruta 4 (textbox4.text) värdet på textbox3.text delat med värdet på textbox1.text gånger värdet på textbox2.text, alltså växlat till pund. VISUAL BASIC förstår till viss del att skilja på strängar och tal automatiskt. Provkör!! Du måste nu vara medveten om att ditt program inte klarar av felinskrivningar/tomma rutor m.m. Tom ruta kan vi hantera med följande kod, felhantering kommer vi till senare, numreringen på textrutor måste kontrolleras mot era egna. If Textbox3.Text <> "" Then Textbox4.Text = Textbox3.Text / Textbox1.Text * Textbox2.Text Else Textbox4.Text = "Fel! Kan ej räkna" End If Eller kanske hellre De här raderna är proceduren som ska köras varje gång något ändras(change) i textbox3 If IsNumeric(Textbox3.Text) Then IsNumeric känner av om värdet går att räkna med då returneras TRUE Uppgift 3. Bygg ut programmet till att samtidigt ge svar i 3 valutor, när du ändrar antal svenska kronor. VBE_lektion1_progA.doc sida 4
Uppgift 4. Gör om programmet så att man kan skriva in önskad mängd främmande valuta och programmet räknar om till de övriga. För att inte cirkelreferenser (jmf excel) ska uppstå kan du använda radiobutton och alltid pricka i valuta du tänker använda. Kan dessa kodsnuttar hjälpa till? If IsNumeric(TextBox3.Text) And RadioButton1.Checked Then Uppgift 5. Uppgift 6. Bygg en kopia av uppgift 4, men med följande kod istället för radiobuttons. If ActiveControl Is Textbox3 Then Utveckla uppgift 5 så att du presenterar olika bilder I en picturebox, beroende på vilken radiobutton som är vald, t.ex en karta på landet ifråga. Sök kod (hur du laddar en picturebox) på VB-help och Internet. Du bör efter det här passet kunna: Spara och öppna VB-projekt. Använda editorn till bl.a. skriva in kod och söka/ersätt Skapa kontroller, markera, ändra egenskaper. Infoga bild och ge programmet ett hyfsat utseende. Skriva enkel kod i händelserna klick(click) och ändra(change) Hantera kontrollerna textruta, etikett, kommandoknapp. Räkna med heltal och flyttal. VBE_lektion1_progA.doc sida 5